Heim >Web-Frontend >js-Tutorial >So implementieren Sie die Komponenten- und Eltern-Kind-Komponentenkommunikation in Vue2.0
Dieser Artikel stellt hauptsächlich die detaillierte Erklärung des Vue 2.0-Lernens, der Vue-Komponenten und der Eltern-Kind-Komponentenkommunikation vor. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz geben. Folgen wir dem Herausgeber und werfen wir einen Blick darauf
Was sind Komponenten?
Die Komponenten in vue sind tatsächlich Teil der Seite, genau wie jede Komponente im Computer (z. B. Festplatte, Tastatur, Maus) und verfügen gleichzeitig über eine unabhängige Logik oder Schnittstelle können Die angegebenen Schnittstellenregeln werden miteinander integriert, um eine vollständige Anwendung zu erhalten.
Die Seite besteht aus solchen Teilen wie Navigation, Listen, Popup-Fenstern, Dropdown-Listen usw. Die Seite ist nur ein Container für diese Komponenten. Die Komponenten werden frei kombiniert, um eine voll funktionsfähige Schnittstelle zu bilden. Wenn eine Komponente nicht benötigt wird oder Sie sie ersetzen möchten, können Sie sie jederzeit ersetzen, ohne den Betrieb zu beeinträchtigen gesamte Anwendung.
Die Kernidee der Front-End-Komponentisierung besteht darin, eine große und komplexe Sache mit angemessener Granularität in kleine Dinge aufzuteilen.
Welche Vorteile bietet der Einsatz von Komponenten?
1. Erleichtern Sie die Wiederverwendung
3. Vereinfachen Sie die Wartbarkeit des gesamten Projekts
🎜>
Komponente in Vue
Die Komponente in Vue ist ein benutzerdefiniertes Tag, und der Compiler von vue.js fügt ihm spezielle Funktionen hinzuKomponente in Vue Das können Sie auch Erweitern Sie native HTML-Elemente, um wiederverwendbaren Code zu kapseln
Grundkomponenten von Komponenten: Stilstruktur, Verhaltenslogik, Daten
Registrierte Komponente
Global Registrierung
kann in jeder Vorlage verwendet werden, Sie müssen sich vor der Verwendung registrieren
Syntax: Vue.component verwenden (Komponentenname, Optionsobjekt)Benennung des Komponentennamens Konvention: Camel Case, Kebab Verwendung von Komponenten in HTML: Benennungskonvention für Kebab verwenden Registrieren Sie beispielsweise Vue.component('my-component',{}) , wenn Sie 9e45b2888d1061ba971abf83647c8cac83153a5025b2246e72401680bb5dd683<p id="app"> <h2>自定义下拉框</h2> <cus-list></cus-list> <cus-list></cus-list> </p> <script type="text/javascript" src='https://i0.jrjimg.cn/zqt-red-1000/focus/focus2017YMZ/teamFrighting/js/vue.min.js'></script> <script type="text/javascript"> // 全局注册组件 Vue.component('cus-list',{ data(){ return { } }, template:` <section> <p> <p> <input type="text"> <input type="button" name="" value=""> <span></span> </p> </p> </section> ` }) new Vue({ el:"#app", data:{ } }) </script>, wenn Sie es verwenden, müssen Sie diese Komponente nur auf der Seite aufrufen, um sie zu verwenden, und sie kann wiederverwendet werden.
Component.png
Lokale Registrierung
Registriert über das Optionsobjekt in der Komponenteninstanz, nur wo Komponenten, die lokal mit
<p id="app"> <h2>自定义下拉框</h2> <cus-list></cus-list> <cus-list></cus-list> </p> <script type="text/javascript" src='https://i0.jrjimg.cn/zqt-red-1000/focus/focus2017YMZ/teamFrighting/js/vue.min.js'></script> <script> new Vue({ el:"#app", components:{ 'cus-list':{ template:` <section> <p> <p> <input type="text"> <input type="button" name="" value=""> <span></span> </p> </p> </section> ` } }, data:{ } }) </script>im registrierten Bereich registriert wurden, können nur im Bereich der aktuellen Instanz verwendet werden und können auch im Bereich wiederverwendet werden. Der Effekt ist wie folgt.
Component.png
Kommunikation zwischen übergeordneten und untergeordneten Komponenten
Kommunikation zwischen Eltern und untergeordneten Komponenten Komponenten
Übergeordnete Komponente===>Untergeordnete Komponente (unter Verwendung von Requisiten)
Der Bereich der Komponenteninstanz ist isoliert und die untergeordnete Komponente kann die Daten der übergeordneten Komponente nicht direkt verwenden . Sie können benutzerdefinierte Attribute verwenden, um Daten an die Komponente zu binden, und Requisiten verwenden, um den Attributnamen anzupassen, der in der Komponente angezeigt werden soll. Mit anderen Worten, erinnern Sie sich an einen Satz: Wenn eine übergeordnete Komponente einen Wert an eine untergeordnete Komponente überträgt, bedeutet dies, beim Aufrufen der Komponente ein Attribut zur Komponente hinzuzufügen und es dann mithilfe von Requisiten in der Komponente zu empfangen . Es kann entsprechend dem Attributnamen in der Komponente verwendet werden.<p id="app"> <h2>自定义下拉框</h2> <cus-list btn-value="查询"></cus-list> <cus-list btn-value="搜索"></cus-list> </p> <script type="text/javascript" src='https://i0.jrjimg.cn/zqt-red-1000/focus/focus2017YMZ/teamFrighting/js/vue.min.js'></script> <script> Vue.component('cus-list',{ data(){ }, props:['btnValue'], template:` <section> <p> <p> <input type="text"> <input type="button" name="" :value="btnValue"> <span></span> </p> </p> </section> ` }) new Vue({ el:"#app", data:{ } }) </script>Seiteneffekt
props pass value.png
Die untergeordnete Komponente kommuniziert mit der übergeordneten Komponente
Unterkomponente ===》Übergeordnete Komponente
muss benutzerdefinierte Zeit verwenden. Die übergeordnete Komponente verwendet $on, um benutzerdefinierte Ereignisse abzuhören, und $emit löst Anpassungen aus Die übergeordnete Komponente kümmert sich um das Ereignis.
1. Definieren Sie den Ereignisinhalt in der Unterkomponente38831128641c27964a380100f1e34c9d{{item}}bed06894275b65c1ab86501b08a632eb2. Benutzerdefiniertes v-on-Ereignis in der übergeordneten Komponente zum Empfangen von v-on:receive="changeValue"3. Wenn das untergeordnete Komponentenereignis ausgelöst wird, benachrichtigt $emit die übergeordnete Komponente this.$ emit("receive",item);4. Die übergeordnete Komponente liefert entsprechendes Feedback basierend auf benutzerdefinierten Ereignissen changeValue:function(value){this.val = value;} Betrachten Sie den folgenden Fall: Wenn Sie auf „Eingabe“ klicken, wird ein Dropdown-Listenfeld angezeigt. Wählen Sie die entsprechende Liste aus und der Listeninhalt wird im Eingabefeld angezeigt.<p id="app"> <h2>自定义下拉框</h2> <cus-list select-Value="搜索" v-bind:list="list1" > </cus-list> </p> <script type="text/javascript" src='https://i0.jrjimg.cn/zqt-red-1000/focus/focus2017YMZ/teamFrighting/js/vue.min.js'></script> <script type="text/javascript"> // 全局注册组件 Vue.component('cus-list',{ data(){ return { selectShow:false, val:'' } }, props:['selectValue','list'], template:` <section> <p> <p> <input type="text" @click="selectShow = !selectShow" :value="val"> <input type="button" name="" :value="selectValue"> </p> <list-li :list="list" v-show="selectShow" v-on:receive="changeValue"></list-li> </p> </section> `, methods:{ changeValue:function(value){ this.val = value; } } }) Vue.component('list-li',{ props:['list'], template:` <ul> <li v-for="item of list" @click="clickLi(item)">{{item}}</li> </ul> `, methods:{ clickLi:function(item){ this.$emit("receive",item); } } }) new Vue({ el:"#app", data:{ list1:['宋仲基','余文乐','鹿晗','陈小春','黄晓明','易烊千玺'] } }) </script>Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird. Verwandte Artikel:
So lösen Sie den Konflikt zwischen Django- und Vue-Syntax
So crawlen Sie Website-Bilder in NodeJS
Informationen zur Verwendung von ES6/JavaScript (ausführliches Tutorial)
So legen Sie Platzhalter-Eingabeaufforderungstext mithilfe des WeChat-Applets dynamisch fest
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Komponenten- und Eltern-Kind-Komponentenkommunikation in Vue2.0. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!