您好,欢迎访问一九零五行业门户网

Vue.js组件之同级之间的通信(代码)

这篇文章介绍vue.js组件之同级之间的通信(代码)
<!doctype html> <html> <head> <meta charset="utf-8"> <title>componentknowledge-同级组件通信</title> <script src="js/vue.js"></script> </head> <body> <template id="aa"> <p> i am aa component:{{msg}} <input type="button" @click="send" value="sendto-cc"> </p> </template> <template id="bb"> <p> i am bb component:{{msg}} <input type="button" @click="send" value="sendto-cc"> </p> </template> <template id="cc"> <p> <p> i am cc component:{{msg}}/receive data:{{msg2}},{{msg3}} </p> </p> </template> <script> window.onload=function(){ let event=new vue(); let aa={//定义组件 template:'#aa', data(){ return {msg:'aa data'} }, methods:{ send(){ event.$emit('a-send',this.msg) } } }; let bb={//定义组件 template:'#bb', data(){ return {msg:'bb data'} }, methods:{ send(){ event.$emit('b-send',this.msg) } } }; let cc={//定义组件 template:'#cc', data(){ return { msg:'cc data', msg2:'', msg3:'' } }, mounted(){ event.$on('a-send',(data)=>{this.msg2=data}); event.$on('b-send',(data)=>{this.msg3=data}); } }; let vm=new vue({ el:'#app', components:{//注册组件 aa, bb, cc } }); } /*同级组件之间的通信关键总结: 1:新建一个空的root组件:let event=new vue(); 其上有两个方法event.$emit('a-fnname',data)/event.$on('a-fnname',(data)=>{}) 2:发送数据的组件:event.$emit('a-fnname',data)写在组件的methods里, 3:接收数据的组件:event.$on('a-fnname',(data)=>{}),注意函数格式必须写为箭头函数,不然this指向不是当前组件,一般写在钩子函数里(beforecreate(){}/created(){}/beforemount(){}/mounted(){}/beforeupdate(){}/updated(){}/beforedestroy(){}/destroyed(){}) */ </script> <p id="app"> <!--使用组件--> <aa></aa> <bb></bb> <cc></cc> </p> </body> </html>
以上就是vue.js组件之同级之间的通信(代码)的详细内容。
其它类似信息

推荐信息