vuex Mutation异步请求为什么不能被记录

发布于 2022-09-12 23:28:59 字数 57 浏览 15 评论 0

官网说vuex mutation进行异步请求不能被记录,不明白为什么不能异步请求成功后后做相关记录呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笔落惊风雨 2022-09-19 23:28:59

其实官网里已经解释了,文字可能比较难以理解,这里举个例子

// 假设这个就是store里的state
 var state = {
      count: 1
    }
// 这里就是某mutation函数
    function someMutation(state) {
    // 这里就是官网所说的devtool捕捉的前一状态快照,当然这个不需要你手动做
      console.log('变化前', JSON.stringify(state))
      setTimeout(() => {
        // 因为要捕捉状态,如果你的mutation的异步的,这是没办法捕获的
        // devtool可以在调用mutation函数前后打印state的快照来记录状态变更,如果你有异步,devtool是不知道的
        state.count++;
      })
      // 这里就是官网所说的devtool捕捉的后一状态快照,当然这个不需要你手动做
      console.log('变化后', JSON.stringify(state))
    }

    someMutation(state);

这就是为什么要产生Action这个东西,Action内部依然是commitmutation,这就不会破坏同步的要求,异步的东西交给action,比如请求,请求之后再去调用·mutation·同步修改state

已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文