国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vuex mutitons和actions初使用詳解

2024-05-06 15:41:58
字體:
來源:轉載
供稿:網友

Mutations

mutations 必須是同步函數,為什么?

舉個例子:  官方案例

mutations: { someMutation (state) {  api.callAsyncMethod(() => {   state.count++  }) }}

我們都知道任何回調函數中進行的狀態改變都是無法追蹤的,  devtools會對mutations的每一條提交做記錄,記錄上一次提交之前和提交之后的狀態,在上面的例子中無法實現捕捉狀態,因為在執行mutations時,內部回調函數還沒有執行,

所以此時無法捕捉狀態.

再簡單來講,就像大家都吃過核桃,核桃剛產下來的時候是帶一層綠色的皮的,我們需要將綠色燒掉,弄掉了,才是我們在市場上見到的只有外面硬殼的核桃,如果我們只剝去綠皮,是不能直接吃的,因為還有一層殼胡著呢.

Actions

vuex肯定不甘示弱,為了解決mutations只有同步的問題,提出了actions(異步),專門用來解決mutations只有同步無異步的問題.

1. 首先先了解一下actions

(1).MUTATIONS

const state = {    xxx: null  },  const mutations = {    [setState](state, value) {      state.xxx = value    }  }


此處value可以是對象,可以是值等

組件調用方式: this.$store.commit('setState', [value])

(2).ACTIONS

  // 第一種寫法簡寫形式  const actions = {    [addPlus]({commit}) { // 簡寫方式,待研究      commit('[setState]', value)      //此處value可以是對象,可以是固定值等    }  }  // 第二種形式  const actions = {    [addPlus](context) {      //context 官方給出的指定對象, 此處context可以理解為store對象      context.commit('[setState]', value)    }  }  /* 兩處的commit都是提交的mutations中的字符串的事件類型名稱,對應會調用mutations中的回調函數 */  actions在組件中的調用方式:   import mapActions from 'vuex'  methods: {    ...mapActions: ([     'addPlus'     ]),    setAddPlus () {      this.$store.dispatch('addPlus', [value]) // 異步調用mutations    }  }

Vuex 狀態管理

Vuex 依賴于 Vue 用來管理 Vue 項目狀態

狀態的修改依賴于 commit 和 dispatch

import Vue from 'Vue';import Vuex from 'Vuex';export default new Vuex.Store({  state:{    count:100  },  mutations:{    change(state,payload){      state.count += payload;    }  },  actions:{    change(context,palyload){      context.commit('change',palyload);// 異步觸發 mutaiton    }  },  getters:{    getCount(){      return state.count;    }  }})
{{$store.state.count}}<button @click="commitChange">更改count</button><button @click="dispatchChange">更改count</button>...methods:{  commitChange(){    this.$store.commit('change',1);  },  dispatchChange(){    this.$sotre.dispatch('change',10);  }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 佛冈县| 蕲春县| 德钦县| 千阳县| 星座| 隆德县| 临城县| 涞水县| 故城县| 黔南| 贺州市| 襄垣县| 横山县| 高邮市| 蒙山县| 陕西省| 正宁县| 武鸣县| 砚山县| 兴文县| 犍为县| 灵川县| 商南县| 扶绥县| 宿松县| 沙雅县| 闽侯县| 万盛区| 土默特右旗| 冕宁县| 宜春市| 广宁县| 扬中市| 科技| 灵丘县| 定日县| 广汉市| 上虞市| 平罗县| 阳曲县| 睢宁县|