EventBus和Vuex
EventBus
工作原理
创建一个vue实例,然后通过空的vue实例作为组件之间的桥梁,进行通信,利用到的设计模式有发布订阅模式
Vuex
工作原理
维护了一个state树,是独立的状态树,有明显的层级关系。不论在树的那个位置,任何组件都可以获取状态或者是触发行为。
使用了单例模式和发布订阅模式。不管创建多少次,返回的都是第一次创建的唯一的实例。
特点
- 状态管理
vuex是一个专门为vue.js应用程序开发的状态管理模式,可以集中的存储管理应用中所有组件的状态。并以相应的规则,使得状态以一种可预测的方式发生变化。把组件的共享状态抽取出来,形成一个单例模式,定义和隔离状态管理中的各种概念并通过强制规则维持视图和状态间的独立性 - 时空穿梭
插件函数,很多很多,具体没有了解过
devtoolPlugin中提供了这个功能,在dev模式下所有的statechange都会被记录下来,时空穿梭功能就是利用当前的state替换为记录中的某个状态的state。利用store.replace(targetState)
方法将执行this._vm.state=state
实现 - 易用性比较差和可维护性比较好
- 热重载
使用webpack中的hot module replacement API,vuex支持在开发过程中实现热重载