eventBus 又称为事件总线。在 Vue 中可使用 eventBus 来作为沟通桥梁的概念,就像是所有组件共用相同的事件中心,可向该中心注册发送事件或接收事件,所以组件都可以上下平行地通知其他组件。由于太方便如若使用不慎,就会造成难以维护的“灾难”,因此才需要更完善的 Vuex 作为状态管理中心,将通知的概念上升到共享状态层次。
A组件已经向全局事件总线EventBus发送了一个aMsg事件,这时B组件就可以去aMsg监听这个事件,并可以获得一些数据。
eventBus 适合小项目、数据被更少组件使用的项目,对于中大型项目悄埋数据在很多组件之间使用的情况 eventBus 就不太适用了禅运链。eventBus 其实就是一个发布订贺孙阅模式,利用 Vue 的自定义事件机制,在触发的地方通过 $emit 向全局Bus外发布一个事件,在需要监听的页面,通过 $on 监听事件。最后在组件销毁时,需要通过 $off 将事件移除监听
优点:1. 易于实现:实现全局事件总线只需要在项目中引入一个单独的模块,可以极大地减少开发时间。
2. 提高组件复用性:使用全局事件总线可以让组件之间更加松散耦合,从而更好桐兄地实现组件复用。
3. 提高程序效率:使用全局逗轮镇事件总线可以减少数据传输的时间和空间,从而提高程序的运行效率。
缺点:
1. 代码可读性差:使用全局事件总线后,代码的可读性会受到影响,因为组件之间的联系变得模糊不清。
2. 无法控制事件触发顺序:全局事件总线无法控制事件触发顺序,这可能会导致程序运行逻辑出现错误。
3. 事件处理器复杂度:全局事件总线的事件处理器复杂度较高,开发者需要花费更多的山粗时间来编写复杂的事件处理器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)