最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vuex mutitons和actions初使用詳解

 更新時間:2019年03月04日 09:38:19   作者:dinglittle  
這篇文章主要介紹了Vuex mutitons和actions初使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

Mutations

mutations 必須是同步函數(shù),為什么?

舉個例子:  官方案例

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

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

所以此時無法捕捉狀態(tài).

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

Actions

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

1. 首先先了解一下actions

(1).MUTATIONS

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


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

組件調(diào)用方式: 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中的字符串的事件類型名稱,對應會調(diào)用mutations中的回調(diào)函數(shù) */
  actions在組件中的調(diào)用方式: 
  import mapActions from 'vuex'
  methods: {
    ...mapActions: ([
     'addPlus' 
    ]),
    setAddPlus () {
      this.$store.dispatch('addPlus', [value]) // 異步調(diào)用mutations
    }
  }

Vuex 狀態(tài)管理

Vuex 依賴于 Vue 用來管理 Vue 項目狀態(tài)

狀態(tài)的修改依賴于 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);// 異步觸發(fā) 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);
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue?el-menu?左側(cè)菜單導航功能的實現(xiàn)

    Vue?el-menu?左側(cè)菜單導航功能的實現(xiàn)

    這篇文章主要介紹了Vue?el-menu?左側(cè)菜單導航功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Vue開發(fā)之封裝上傳文件組件與用法示例

    Vue開發(fā)之封裝上傳文件組件與用法示例

    這篇文章主要介紹了Vue開發(fā)之封裝上傳文件組件與用法,結(jié)合實例形式分析了vue.js使用elementui的 el-upload插件進行上傳文件組件的封裝及使用相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • vue-cli實現(xiàn)異步請求返回mock模擬數(shù)據(jù)

    vue-cli實現(xiàn)異步請求返回mock模擬數(shù)據(jù)

    網(wǎng)上有不少使用mockjs模擬數(shù)據(jù)的文章,但基本都是本地攔截請求返回數(shù)據(jù),本文主要介紹了vue-cli實現(xiàn)異步請求返回mock模擬數(shù)據(jù),文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue element el-table-column中對日期進行格式化方式(全局過濾器)

    Vue element el-table-column中對日期進行格式化方式(全局過濾器)

    這篇文章主要介紹了Vue element el-table-column中對日期進行格式化方式(全局過濾器),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue圖片轉(zhuǎn)base64格式的方法示例

    vue圖片轉(zhuǎn)base64格式的方法示例

    對于前后端分離的項目,為了統(tǒng)一響應參數(shù),需要將圖片轉(zhuǎn)換成base64的格式,下面這篇文章主要給大家介紹了關(guān)于vue圖片轉(zhuǎn)base64格式的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Vue中使用Openlayer實現(xiàn)加載動畫效果

    Vue中使用Openlayer實現(xiàn)加載動畫效果

    這篇文章主要介紹了Vue+Openlayer加載動畫效果的實現(xiàn)代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • vue實現(xiàn)樹形菜單效果

    vue實現(xiàn)樹形菜單效果

    這篇文章主要為大家詳細介紹了vue實現(xiàn)樹形菜單效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • vue幾個常用跨域處理方式介紹

    vue幾個常用跨域處理方式介紹

    本篇文章給大家詳細介紹了vue跨域處理問題的方式以及相關(guān)知識點介紹,對此有興趣的朋友學習下。
    2018-02-02
  • 教你60行代碼實現(xiàn)一個迷你響應式系統(tǒng)vue

    教你60行代碼實現(xiàn)一個迷你響應式系統(tǒng)vue

    這篇文章主要為大家介紹了教你60行代碼實現(xiàn)一個迷你響應式系統(tǒng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2023-03-03
  • Django+vue跨域問題解決的詳細步驟

    Django+vue跨域問題解決的詳細步驟

    這篇文章主要介紹了Django+vue跨域問題解決的詳細步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01

最新評論

宁城县| 鲜城| 新化县| 濮阳县| 慈溪市| 泗洪县| 屯昌县| 都兰县| 苗栗县| 潼关县| 左云县| 高台县| 阿勒泰市| 辽阳市| 抚宁县| 富蕴县| 禄劝| 长海县| 南投市| 襄城县| 嫩江县| 台中县| 郓城县| 招远市| 礼泉县| 宜城市| 历史| 红安县| 丰宁| 翁源县| 四子王旗| 清水县| 来安县| 台东县| 汝州市| 铜梁县| 准格尔旗| 新昌县| 霸州市| 美姑县| 郴州市|