100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 学习前端_vue组件_非父子级的组件间的数据传递

学习前端_vue组件_非父子级的组件间的数据传递

时间:2020-12-13 12:46:47

相关推荐

学习前端_vue组件_非父子级的组件间的数据传递

之前说过了父子级之间是如何传递数据的,接下来讲一下非父子级如何传递数据

1.创建一个空的vue实例 例如:var datavue=new Vue();

2.在数据源组件上添加发射方法,将想要传送的数据发射出去 例如:send(){datavue.$emit("edata",this.name) }

3.在接收数据的组件接收方法,在合适的时间监听传送过来的数据 例如datavue.$on('edata',name=>{this.name=name;})

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>非父子之间的数据通信</title><script src="js/vue.js"></script></head><body><div id="test"><vue_a></vue_a><vue_b></vue_b></div><template id="vue_a"><div><p>这是A组件</p><p>A组件名字是:{{name}}</p><input type="button" value="发送数据" @click='send'></div></template><template id="vue_b"><div><p>这是B组件</p><p>B组件接收的数据是{{name}}</p></div></template><script>var datavue=new Vue(); // 1建立一个空的vue组件var A={template:'#vue_a',data() {return {name:'奥巴马'}},methods: {send(){datavue.$emit("edata",this.name)//2.使用空vue发送想要传输的数据}},}var B={template:'#vue_b',data() {return {name:''}},mounted() { //在一定的时机接收发送过来的数据datavue.$on('edata',name=>{this.name=name;})},}new Vue({el:'#test',components:{'vue_a':A,'vue_b':B}})</script></body></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。