在使用Vue框架中,组件之间传值是我们经常使用到的一项技能。比如我们依赖的父组件正向传值给子组件,子组件逆向传值给父组件,兄弟组件之间传值,vuex等,这里我来总结一下中央事件总线的用法。
中央事件总线依赖于$emit实例本身触发事件。
下面就来看一下吧:
- 在src/assets/下创建一个xxx.js文件在其中只创建一个新的Vue实例,以后它就承担起了组件之间通信的桥梁了,也就是中央事件总线。
- 在publicBus.js中创建一个新的Vue实例:
import Vue from "vue"
export default new Vue
- 创建一个A组件,引入事件总线的js文件,接着添加一个按钮并绑定一个点击事件,进行自定义事件抛出:
diany.vue中:
- 再创建一个B组件,引入eventBus事件总线,在mounted钩子,监听了自定义事件,并把传递过来的字符串参数传递给了on监听器的回调函数
$on:监听当前实例上的自定义事件
下面会有一个案例帮助大家理解。