时间:2021-05-26
新创建一个vue实例用于调度事件的绑定和发送
可以做到同级组件相互通讯,传递参数,点击第一个组件会修改第二个组件的label值,点击第二个组件会修改第二个组件的label值
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script src="vue.js"></script></head><body><div id="app"> <one></one> <two></two></div></body><script> // 使用一个vue实例 作为事件的载体,用于绑定事件和处理发送事件,作为调度中心 let eventBus = new Vue() let one = { template: '<div>{{val}} <button @click="click">click</button></div>', data() { return { val: 0 } }, created() { //为one绑定事件,如果two_click事件发生了,则执行回调函数 eventBus.$on('two_click', (val) => { // 这个this 指的是one的vue实例 this.val = val } ) }, methods: { click() { // 如果one被点击了,则发送一个one_click的事件,并传递一个参数 eventBus.$emit('one_click', 11) } } } let two = { template: '<div>{{val}} <button @click="click">click</button></div>', data() { return { val: 0 } }, created() { eventBus.$on('one_click', (val) => { this.val = val }) }, methods: { click() { eventBus.$emit('two_click', 22) } } } new Vue({ el: '#app', components: { one, two } })</script></html>总结
以上所述是小编给大家介绍的vue 使用eventBus实现同级组件的通讯,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
vue项目中不同组件间通信一般使用vuex,通常情况下vuex和EventBus不应该混用,不过某些场景下不同组件间只有消息的交互,这时使用EventBus消息
EventBus可以很方便地进行各组件间的通信,解耦性更强,比广播更好用。EventBus3简介EventBus是一种为了优化Android组件之间事件传递的解
前言在vue里,组件之间的作用域是独立的,父组件跟子组件之间的通讯可以通过prop属性来传参,但是在兄弟组件之间通讯就比较麻烦了。比如A组件要告诉一件事给B组件
上回说到Vue组件间通讯,最后留了一个彩蛋~~~Vuex。Vuex是另一种组件通讯的方法,这节来说说Vuex(store仓库)。首先Vuex需要安装,安装的方式
在vue中,实现Tab切换主要有三种方式:使用动态组件,使用vue-router路由,使用第三方插件。因为这次完成的功能只是简单切换组件,再则觉得使用路由切换需