Vuex的学习
Mutation 提交风格
Mutation中的处理方式是将整个commit的对象作为payload使用,所以代码没有改变,依然如下:
Mutation响应式规则
Vuex的store中的state是响应式的,当state中的数据发生改变时,Vue组件会自动更新。
这就要求我们必须遵守一些对应的规则:
1.提前在store中初始化好所需要的属性
2.当给state中的对象添加新属性时,使用下面的方式:
方式一:使用Vue.set(obj,‘newProp’,123)
方式二:用新对象给旧对象重新赋值
Mutation传递参数
Mutation同步函数
通常情况下,Vuex要求我们Mutation中的方法必须是同步方法
1.主要原因是当我们使用devtools时,可以devtools可以帮助我们捕捉mutation的快照
2.但是如果是异步操作,那么devtools将不能很好的追踪这个操作什么时候会完成
3.你会发现state中的info数据一直没有被改变,因为他无法追踪到
**4.So,通常情况下,不要在mutation中进行异步操作**
Action的基本定义
Action的写法(对象解构)
我们强调,不要在Mutation中进行异步操作
但是某些情况,我们确实希望在Vuex中进行一些异步操作,比如网络请求,必然是异步的。这个时候怎么处理呢?
Action类似于Mutaton,但是是用来代替Mutation进行异步操作的