欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vuex mutitons和actions初使用詳解

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

Mutations

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

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

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

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

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

再簡單來講,就像大家都吃過核桃,核桃剛產(chǎn)下來的時(shí)候是帶一層綠色的皮的,我們需要將綠色燒掉,弄掉了,才是我們?cè)谑袌錾弦姷降闹挥型饷嬗矚さ暮颂?如果我們只剝?nèi)ゾG皮,是不能直接吃的,因?yàn)檫€有一層殼胡著呢.

Actions

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

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

  // 第一種寫法簡寫形式
  const actions = {
    [addPlus]({commit}) { // 簡寫方式,待研究
      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 用來管理 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);
  }
}

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

相關(guān)文章

  • VUE3+TS遞歸組件實(shí)現(xiàn)TreeList設(shè)計(jì)實(shí)例詳解

    VUE3+TS遞歸組件實(shí)現(xiàn)TreeList設(shè)計(jì)實(shí)例詳解

    這篇文章主要為大家介紹了VUE3+TS遞歸組件實(shí)現(xiàn)TreeList設(shè)計(jì)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 淺談Vue3 defineComponent有什么作用

    淺談Vue3 defineComponent有什么作用

    本文主要介紹了Vue3 defineComponent作用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • vue項(xiàng)目不能使用localhost訪問的解決

    vue項(xiàng)目不能使用localhost訪問的解決

    這篇文章主要介紹了vue項(xiàng)目不能使用localhost訪問的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue.js this.$router.push獲取不到params參數(shù)問題

    vue.js this.$router.push獲取不到params參數(shù)問題

    這篇文章主要介紹了vue.js this.$router.push獲取不到params參數(shù)問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • vue prop屬性傳值與傳引用示例

    vue prop屬性傳值與傳引用示例

    今天小編就為大家分享一篇vue prop屬性傳值與傳引用示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue整合AdminLTE模板的方法

    Vue整合AdminLTE模板的方法

    這篇文章主要介紹了Vue整合AdminLTE模板的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • 關(guān)于vue利用postcss-pxtorem進(jìn)行移動(dòng)端適配的問題

    關(guān)于vue利用postcss-pxtorem進(jìn)行移動(dòng)端適配的問題

    這篇文章主要介紹了關(guān)于vue利用postcss-pxtorem進(jìn)行移動(dòng)端適配的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Vue插件實(shí)現(xiàn)過程中遇到的問題總結(jié)

    Vue插件實(shí)現(xiàn)過程中遇到的問題總結(jié)

    隨著Vue.js越來越火,Vue.js 的相關(guān)插件也在不斷的被貢獻(xiàn)出來,數(shù)不勝數(shù),這篇文章主要給大家介紹了關(guān)于Vue插件實(shí)現(xiàn)過程中遇到的問題,需要的朋友可以參考下
    2021-08-08
  • Vue實(shí)現(xiàn)搜索結(jié)果高亮顯示關(guān)鍵字

    Vue實(shí)現(xiàn)搜索結(jié)果高亮顯示關(guān)鍵字

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)搜索結(jié)果高亮顯示關(guān)鍵字,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • vue前端和Django后端如何查詢一定時(shí)間段內(nèi)的數(shù)據(jù)

    vue前端和Django后端如何查詢一定時(shí)間段內(nèi)的數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于vue前端和Django后端如何查詢一定時(shí)間段內(nèi)的數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評(píng)論