标签:简单 article pen 原型对象 stat 就会 art ready word
用过Vue,你肯定知道,Vue组件之间的通信常见的有$dispatch
- 通过冒泡的方式传递事件$broadcast
- 通过广播的方式向子孙组件传递事件
如果组件之间的关系只是父-子关系,那么dispatch
,broadcast
其实就足够了。
但是有天需求变了。登录成功之后,要把用户信息都填上,而需要用户信息的组件不是父组件,而是兄弟组件的后台。
那么事件传递就会变成登录组件向上dispatch到父组件,父组件通过broadcast的方式下发。
当然,这个简单的例子不足够证明这样的传递有多糟糕。随着项目和项目成员的壮大,这样的组件通信越多,越不好维护。
所以官方推出了Vuex。
Vuex会让你的Vue代码足够灵活可控,把数据统一存入state, 只允许通过Actions触发Mutations修改。
然而,有时候我们的项目并没有复杂到需要用上Vuex。
这时候你可以考虑使用Event Bus。
Vue实际上在1.几版本的时候就加入了Event Bus,但是好像官方文档中没怎么提到。
作者应该是在Vue的原型对象上注入了,所以只要创建一个Vue对象就够了。
1
|
// bus.js
|
使用$on
全局监听(好像这样说不是很正确)
1
|
import Bus from ‘../bus.js‘;
|
使用$emit
触发事件。
1
|
ajax({
|
使用$once
注册一次,触发之后即被销毁。
使用$off
解绑事件。
就这么简单。Event Bus非常简单好用,但也有存在隐患,需要注意:
标签:简单 article pen 原型对象 stat 就会 art ready word
原文地址:https://www.cnblogs.com/Tohold/p/8831042.html