vuex中 mutation和action的區別和使用


utations 類似於事件,用於提交 Vuex 中的狀態 state

action 和 mutations 也很類似,主要的區別在於mutations 只能是同步操作,,action 可以包含異步操作,而且可以通過 action 來提交 mutations

mutations 有一個固有參數 state,接收的是 Vuex 中的 state 對象

action 也有一個固有參數 context,但是 context 是 state 的父級,包含 state、getters

Vuex 的倉庫是 store.js,將 axios 引入,並在 action 添加新的方法

分發調用action:

this.$store.dispatch('action中的函數名',發送到action中的數據)

在組件中提交 Mutation:
this.$store.commit(“mutation函數名”,發送到mutation中的數據)

在action中提交mutation :

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  },
  actions: {
    increment (context) {    //官方給出的指定對象, 此處context可以理解為store對象
      context.commit('increment');
    }
  }
})
// 第一種寫法簡寫形式
  const actions = {
    action的函數名({commit}) { 
      commit(“mutation函數名”, value);   //調用mutation中的函數
      //此處value可以是對象,可以是固定值等
    }
  }
  // 第二種形式
  const actions = {
    action中的函數名(context) {
      //context 官方給出的指定對象, 此處context可以理解為store對象
      context.commit(“mutation函數名”, value);     //調用mutation中的函數
    }
  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM