increment ({ commit }) { commit('increment') }

在vuex教程中,有這樣一段描述:
實踐中,我們會經常用到 ES2015 的 參數解構 來簡化代碼(特別是我們需要調用 commit 很多次的時候):

actions: {
  increment ({ commit }) {
       commit('increment')
  }
}

看到這裏,需要了解action API
actions
類型: { [type: string]: Function }

在 store 上註冊 action。處理函數總是接受 context 作爲第一個參數,payload 作爲第二個參數(可選)。

context 對象包含以下屬性:

{
  state,      // 等同於 `store.state`,若在模塊中則爲局部狀態
  rootState,  // 等同於 `store.state`,只存在於模塊中
  commit,     // 等同於 `store.commit`
  dispatch,   // 等同於 `store.dispatch`
  getters,    // 等同於 `store.getters`
  rootGetters // 等同於 `store.getters`,只存在於模塊中
}

所以說,

actions: {
  increment (context) {
    context.commit('increment')
  }
}

相當於:

actions:{
  increment ({ commit: context.commit }) {
    context.commit('increment');
  }
}

相當於:

actions: {
  increment ({ commit }) {
    commit('increment')
  }
}  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章