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

Vuex mutitons和actions初使用詳解

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

Mutations

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

舉個(gè)例子:  官方案例

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

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

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

再簡(jiǎn)單來(lái)講,就像大家都吃過(guò)核桃,核桃剛產(chǎn)下來(lái)的時(shí)候是帶一層綠色的皮的,我們需要將綠色燒掉,弄掉了,才是我們?cè)谑袌?chǎng)上見到的只有外面硬殼的核桃,如果我們只剝?nèi)ゾG皮,是不能直接吃的,因?yàn)檫€有一層殼胡著呢.

Actions

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

1. 首先先了解一下actions

(1).MUTATIONS

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


此處value可以是對(duì)象,可以是值等

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

(2).ACTIONS

  // 第一種寫法簡(jiǎn)寫形式
  const actions = {
    [addPlus]({commit}) { // 簡(jiǎn)寫方式,待研究
      commit('[setState]', value)
      //此處value可以是對(duì)象,可以是固定值等
    }
  }
  // 第二種形式
  const actions = {
    [addPlus](context) {
      //context 官方給出的指定對(duì)象, 此處context可以理解為store對(duì)象
      context.commit('[setState]', value)
    }
  }
  /* 兩處的commit都是提交的mutations中的字符串的事件類型名稱,對(duì)應(yīng)會(huì)調(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 用來(lái)管理 Vue 項(xiàng)目狀態(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);
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

    Vue element el-table-column中對(duì)日期進(jìn)行格式化方式(全局過(guò)濾器)

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

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

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

    Vue中使用Openlayer實(shí)現(xiàn)加載動(dòng)畫效果

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

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

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

    vue幾個(gè)常用跨域處理方式介紹

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

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

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

    Django+vue跨域問(wèn)題解決的詳細(xì)步驟

    這篇文章主要介紹了Django+vue跨域問(wèn)題解決的詳細(xì)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01

最新評(píng)論

正镶白旗| 淮南市| 蚌埠市| 凤翔县| 永寿县| 鞍山市| 井冈山市| 峨边| 广宗县| 横山县| 普兰县| 灵川县| 阿鲁科尔沁旗| 晴隆县| 常熟市| 启东市| 鄂州市| 广元市| 威海市| 定安县| 慈利县| 巢湖市| 博爱县| 徐闻县| 永济市| 万州区| 营山县| 铜梁县| 武威市| 达尔| 定日县| 盐池县| 林芝县| 莱阳市| 屏东市| 九龙县| 通州市| 年辖:市辖区| 昌平区| 唐山市| 舒兰市|