vuex笔记

    1. action可以是异步的,mutation必须是同步的,不然devtools观察不到mutation触发后的异步情况
    2. store.commit -> 分发 mutation,store.dispatch -> 触发action
      饶了一圈先触发action是为了action可以执行任何异步操作
      mutation 必须同步执行,Action 就不受约束!我们可以在 action 内部执行异步
      操作
      *问:我们的异步回调可以不再action中请求,而是当页面里的回调成功直接commit不是一样的吗,这个时候action也是简单的触发mutation,没有执行任何异步
      而且,感觉异步调接口等方法还是写在各自页面比较好,写在action里太杂乱,易冲突。
      例子:一级平台(action里请求接口传回调函数),IOE(页面回调里触发改值,action也是同步)
      *答:在action中可以引入所有mutation-type,如果在每个页面自己commit,那每个页面就要引入
      mutation-type,不方便。
      经过dashboard实践,最终发现,在页面里组织参数与回调方法,调用各自的action,action在dispatch封装ajax的action,在各自的action回调中可以触发commit保存至store
    3. store.dispatch 可以处理被触发的action的回调函数返回的Promise,并且store.dispatch仍旧返回Promise
    4. Modules
      modules是每个模块对象,包含state,mutations,actions,getters。
      对于模块内部的 getter,根节点状态会作为第三个参数
    5. Action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,context不是store本身,因为它可能存在于局部模块化内。
原文地址:https://www.cnblogs.com/wayshon/p/7232553.html