全局单例模式管理
1.Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。
2.你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。
实现:
1._vm 是新建的vue,这样当你使用$store的时候,就自动建立了响应式关系,你的组件里实际上是受_vm控制的,这里实际把vue当成了单纯的响应式数据
2.为什么有actions和mutations的区别?只是为了达到快照功能呢,即所谓的时间旅行,可以回到任意状态,所以每一步必须都记录下来。当然你可以在Mutations里写ajax,但是状态就无法追溯了。
3.Module是最重要的概念:
在使用module后,state是默认挂载到对应的module下的,我们在mutations里得到的是模块的局部对象,commit也是局部的
但是actions, mutations却是挂到全局的