Vuex中的dispatch用来触发(派发)action

Vuex 中的 dispatch 方法是用来触发(派发)action 的。store.dispatch(‘actionName’) 会去调用名为 actionName 的 action。

在 Vuex 中,actions 类似于 mutations,但是可以包含任意异步操作,而且 action 不能直接修改 state,必须通过提交(commit)mutation 来修改 state

如果我们调用 store.dispatch(‘resetChatInput’),那么就是触发执行名为 ‘resetChatInput’ 的 action。具体执行什么操作取决于 ‘resetChatInput’ 对应的 action 函数在 Vuex store 中的定义。
例如,如果你的 Vuex store 定义如下:

export default createStore({
  state: {
    input: {
      prompt: '',
      quoteChatId: '',
      refImage: ''
    }
  },
  mutations: {
    RESET_CHAT_INPUT(state) {
      state.input.prompt = ''
      state.input.quoteChatId = ''
      state.input.refImage = ''
    }
  },
  actions: {
    resetChatInput({ commit }) {
      commit('RESET_CHAT_INPUT')
    }
  }
})

那么,store.dispatch(‘resetChatInput’) 就是触发 ‘resetChatInput’ 这个 action,这个 action 会执行一个异步操作(在这个例子中没有异步操作),然后提交 mutation ‘RESET_CHAT_INPUT’,这个 mutation 会重置 prompt、quoteChatId 和 refImage 这三个 state 的值为默认值。

你可能感兴趣的:(前端,javascript,linux)