温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Vue2.0实现组件之间数据交互和通信操作示例

发布时间:2020-08-30 08:17:03 来源:脚本之家 阅读:177 作者:xqnode 栏目:web开发

本文实例讲述了Vue2.0实现组件之间数据交互和通信操作。分享给大家供大家参考,具体如下:

Vue2.0组件之间数据交互和通信。

Vue2.0废弃了dispatch 和 $broadcast,如何在实现组件之间的数据交互和通信?下面是一个简单的demo解决了这个问题。

事件中心(evengtHub.js):

 //定义事件中心,在模板通信是使用。 import Vue from 'vue'; export default { bus: new Vue() } 

父组件:

 <div> <!--msg必须跟子组件的msg参数一致,@msg是子组件向父组件传参数的接口,:msg是父组件向子组件传参数的接口--> <child1 @msg='getMsg' :msg1='msg1'></child1> <child1 ref='child2'></child2> <div> 
 <script> import bus form 'eventHub' componets: { child1: require('child1'), child2: require('child2'); }, data() { return: { msg1: 'hello' } }, methods: { getMsg(el) { this.$refs.child2.drop(el); //父组件调用child2组件的drop方法,传递el参数,子组件和子组件之间的通信 } } </script> 

子组件1

 <template> <div class='child1' @click='sendMsg'>{{msg}}<div> </template> 
 <script> import bus form 'eventHub'; //props属性用于子组件接收父组件传过来的参数 props: { msg1 :String }, methods: { this.bus.$emit('add', event.target);//此方法可以通过子组件1在任意组件内响应点击事件。 this.$emit('msg', event.target);//发送数据给父组件,这个方法的'msg'参数必须和父组件的@msg保持一致。 } </script> 

子组件2

 <template> <div class='child2'><div> </template> 
 <script> import bus form 'eventHub' methods: { drop(el) { console.log(el);//打印出child1的div元素 } }, created() { this.bus.$on('add',() => { console.log('响应child1的点击事件'); }) } </script> 

上面的例子中包括父子组件之间互相传参数和组件之间的通信,更好的组件通信事件请使用vuex。

希望本文所述对大家vue.js程序设计有所帮助。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI