91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vuex的作用是什么

發布時間:2021-01-19 11:26:20 來源:億速云 閱讀:752 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關vuex的作用是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

vuex是基于vue框架的一個狀態管理庫,可以管理復雜應用的數據狀態,可以方便的實現組件之間的數據共享,例兄弟組件的通信、多層嵌套的組件的傳值等等;它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。

Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模式,是基于vue框架的一個狀態管理庫。可以管理復雜應用的數據狀態,可以方便的實現組件之間的數據共享,比如兄弟組件的通信、多層嵌套的組件的傳值等等。

Vuex采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。

Vuex 也集成到 Vue 的官方調試工具 devtools extension,提供了諸如零配置的 time-travel 調試、狀態快照導入導出等高級調試功能。

Vuex中的核心特性

(1)State: 提供唯一的公共數據源,所有共享的數據都要統一放到Store中的State中存儲

在組件中訪問State的方式:

A.this.$store.state.全局數據名稱 如:this.$store.state.count

B.先按需導入mapState函數: import { mapState } from ‘vuex’

然后數據映射為計算屬性: computed:{ …mapState([‘全局數據名稱’]) }

(2) Mutation:用于修改變更$store中的數

使用方式:

打開store.js文件,在mutations中添加代碼如下:

mutations: {
    add(state,step){
      //第一個形參永遠都是state也就是$state對象
      //第二個形參是調用add時傳遞的參數
      state.count+=step;
    }
  }

然后在Addition.vue中給按鈕添加事件代碼如下:

<button @click="Add">+1</button>

methods:{
  Add(){
    //使用commit函數調用mutations中的對應函數,
    //第一個參數就是我們要調用的mutations中的函數名
    //第二個參數就是傳遞給add函數的參數
    this.$store.commit('add',10)
  }
}

使用mutations的第二種方式:

import { mapMutations } from ‘vuex’
methods:{…mapMutations([‘add’])}

如下:

import { mapState,mapMutations } from 'vuex'

export default {
  data() {
    return {}
  },
  methods:{
      //獲得mapMutations映射的sub函數
      ...mapMutations(['sub']),
      //當點擊按鈕時觸發Sub函數
      Sub(){
          //調用sub函數完成對數據的操作
          this.sub(10);
      }
  },
  computed:{
      ...mapState(['count'])
      
  }
}

(3)Action:在mutations中不能編寫異步的代碼,會導致vue調試器的顯示出錯。在vuex中我們可以使用Action來執行異步操作。
操作步驟如下:

打開store.js文件,修改Action,如下:

actions: {
  addAsync(context,step){
    setTimeout(()=>{
      context.commit('add',step);
    },2000)
  }
}

然后在Addition.vue中給按鈕添加事件代碼如下:

<button @click="AddAsync">...+1</button>

methods:{
  AddAsync(){
    this.$store.dispatch('addAsync',5)
  }
}

(4)Getter:用于對Store中的數據進行加工處理形成新的數據。

它只會包裝Store中保存的數據,并不會修改Store中保存的數據,當Store中的數據發生變化時,Getter生成的內容也會隨之變化。
打開store.js文件,添加getters,如下:

export default new Vuex.Store({
  .......
  getters:{
    //添加了一個showNum的屬性
    showNum : state =>{
      return '最新的count值為:'+state.count;
    }
  }
})

然后打開Addition.vue中,添加插值表達式使用getters

<h4>{{$store.getters.showNum}}</h4>

也可以在Addition.vue中,導入mapGetters,并將之映射為計算屬性

import { mapGetters } from 'vuex'
computed:{
  ...mapGetters(['showNum'])
}

關于“vuex的作用是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保德县| 博白县| 东丽区| 兴化市| 错那县| 将乐县| 靖州| 弥勒县| 怀仁县| 郧西县| 枣阳市| 宁明县| 项城市| 宁安市| 桃源县| 佛坪县| 沈丘县| 柳林县| 榕江县| 富阳市| 美姑县| 黔东| 黄梅县| 新绛县| 安康市| 中阳县| 乐平市| 开远市| 荃湾区| 灵寿县| 滦平县| 福安市| 西林县| 灌阳县| 陆川县| 永仁县| 湘阴县| 鹿邑县| 高阳县| 山西省| 丰原市|