国产探花免费观看_亚洲丰满少妇自慰呻吟_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);  }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 云南省| 盘山县| 驻马店市| 玉山县| 长沙市| 华池县| 从化市| 天气| 丹阳市| 惠安县| 边坝县| 淮南市| 岳池县| 扶绥县| 松潘县| 马龙县| 云南省| 新建县| 应用必备| 文水县| 邢台县| 镇巴县| 景德镇市| 盐池县| 绵竹市| 呼和浩特市| 兴安盟| 天全县| 棋牌| 杨浦区| 定陶县| 盐源县| 宜兰市| 漯河市| 沙洋县| 五常市| 兴隆县| 清远市| 潜江市| 拜城县| 老河口市|