1.Vuex使用单一状态树,用一个对象包含全部的应用层级状态。意味着每个应用仅仅包含一个store实例。Vuex通过store选项,提供了一种机制将状态从根组件“注入”到每一个子组件中,需要调用Vue.use(Vuex)。初始化Vue时将store对象提供给store选项,这样可以把store的实例注入所有的子组件。
2.Vuex允许我们在store中定义getter,getter的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。其中getter接受state为它的第一个参数,同时也接受其他作为第二个参数。
3.更改Vuex的store中的状态的唯一方法是提交mutation。mutation非常类似于事件,都有一个字符串的事件类型type和一个回调函数handler。这个回调函数就是我们实际更改状态的地方,并且它会接收state为第一个参数。不能直接调用mutation handler,而是调用store.commit(‘type’)。对store.commit提交的额外参数为载荷(payload),在多数情况下,载荷应该是一个对象,这样可以包含多个字段,并且记录的mutation更易读。
4.mutation都是同步事务,为了处理异步操作,使用action。action与mutation不同,提交的是mutation,而不是直接变更状态。action可以包含任意异步操作。
5.为了防止store对象过大,可以将store对象分割成module,每个模块拥有自己的state、mutation、action、getter。