javascript - 在 vuex 中创建 Action 的正确方法

标签 javascript vue.js vuex

作为 a1 创建简单(无需链接 then/catch 调用)vuex-actions 就足够了吗?或者我每次都需要用 Promise creating as a2 来编写它(+还添加拒绝分支)?

提前致谢...

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);

const debug = process.env.NODE_ENV !== 'production';

export default new Vuex.Store({
    state: { ... }
    ...
    actions: {
        a1: (state, response) => {
            state.commit('setNavMenu',{signIn: true, signUp: true, signOut: false});
        ...        
        },
        a2: (state, response) => {
            return new Promise((resolve) => {
                state.commit('setNavMenu',{signIn: true, signUp: true, signOut: false});
            ...
            resolve();
            });
        },        

...
     

最佳答案

可以像您的第一个 a1

一样创建同步操作(无需 promise 或其他异步代码)

但是,您可以直接调用突变函数,在 a1 的情况下,它将是 setNavMenu。 Action 和突变之间的主要区别在于, Action 可以是异步的,而突变不能,基本上如果你不需要你的 Action 来执行异步。代码,您不需要任何操作,只需进行突变即可。

有关更多详细信息,您可以查看有关操作的官方文档 https://vuex.vuejs.org/en/actions.html

关于javascript - 在 vuex 中创建 Action 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50411779/

相关文章:

javascript - 如何在 Vue.js 中设置 optgroup 选择标签?

javascript - Vue JS 服务器端渲染 : computed property not seeing changes in store

javascript - 将 jquery 翻译/转换为 javascript

javascript - 为什么 fs.readFile 返回一个缓冲区?

vue.js - 无法在我的 Vue 组件中捕获 Vuex 状态变化

vue.js - 如何在 vuex nuxt 中获取嵌套 getter

javascript - VueJS 调度函数的执行顺序导致问题

javascript - 单击div时,检查相应的radio输入jquery

javascript - 动态设置 CSS 属性

javascript - Vuejs动态获取element的值