Heim > Artikel > Web-Frontend > So verwenden Sie die Eltern-Kind-Komponentenkommunikation von Vue
Dieses Mal werde ich Ihnen zeigen, wie Sie die Eltern-Kind-Komponentenkommunikation von Vue verwenden sehen.
Umfassende Übung zur Kommunikation zwischen Komponenten:<!doctype html> <html> <head> <meta charset="UTF-8"> <title>组件父子间通信之综合练习</title> <script src="js/vue.js"></script> </head> <body> <p id="container"> <p>{{msg}}</p> <chat-room></chat-room> </p> <script> // 创建父组件 Vue.component("chat-room",{ //data属性中的chatList保存用户聊天信息 data:function(){ return{ chatList:[] } }, template:` <p> //假的聊天室 <h1>假的聊天室</h1> <user-component userName="Rose"></user-component> <user-component userName="Jack"></user-component> //显示用户的聊天信息 <ul> <li v-for="tmp in chatList">{{tmp}}</li> </ul> </p> ` }) //创建子组件 Vue.component("user-component",{ props:["userName"], //通过v-model把用户输入的数据保存到userInput数组 data:function(){ return { userInput:[] } }, methods:{ //把用户输入的数据以及用户名label信息push给chatList数组 sendChat:function(){ this.$parent.chatList.push(this.userName+":"+this.userInput); //情况input框 this.userInput =" "; } }, template:` <p> <label>{{userName}}</label> <input type="text" v-model="userInput"/> <button @click="sendChat">发送</button> </p> ` }) new Vue({ el:"#container", data:{ msg:"Hello VueJs" } }) </script> </body> </html>(Requisiten runter, Ereignisse hoch)
besteht aus 2 Komponenten: Chatroom, Benutzerkomponente
Benutzerkomponente besteht aus der Beschriftungseingabetaste
Chatroom ist Bestehend aus zwei Benutzerkomponenten und einer Liste
① Rufen Sie die Benutzerkomponente im Chatroom auf, um den Labelnamen anzugeben
auf die Schaltfläche
klickt, werden die vom aktuellen Benutzer eingegebenen Informationen an den Chatroom gesendet Komponente, Chatroom empfängt Daten und zeigt sie in der Liste an
Code:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <script src="js/vue.js"></script> <title></title> </head> <body> <p id="container"> <chat-room></chat-room> </p> <script> Vue.component('chat-room',{ methods:{ recvMsg:function(msg){ console.log("在父组件中接收子组件传来的数据"+msg); this.chatList.push(msg); } }, data: function () { return { chatList:[] } }, template:` <p> <h1>假的聊天室</h1> <ul> <li v-for="tmp in chatList"> {{tmp}} </li> </ul> <user-component userName="Lucy" @sendToFather="recvMsg"></user-component> <user-component userName="Merry" @sendToFather="recvMsg"></user-component> </p> ` }) Vue.component('user-component',{ props:['userName'], data: function () { return { userInput:'' } }, methods:{ sendToFather: function () { //触发toFatherEvent的事件,把input中 //用户输入的数据发送 this.$emit("sendToFather",this.userName+":"+this.userInput); } }, template:` <p> <label>{{userName}}</label> <input type="text" v-model="userInput"/> <button @click="sendToFather">发送</button> </p> ` }) new Vue({ el: '#container', data: { msg: 'Hello Vue' } }) </script> </body> </html>
Empfohlene Lektüre:
mint-ui Loadmore Pull-up-Lade- und Pulldown-Aktualisierungskonfliktbehandlungsmethode Vorlage in ES6 Detaillierte Erläuterung der String-VerwendungDas obige ist der detaillierte Inhalt vonSo verwenden Sie die Eltern-Kind-Komponentenkommunikation von Vue. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!