中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

射阳县| 二连浩特市| 西盟| 萍乡市| 巫溪县| 德化县| 夏邑县| 宁阳县| 台南市| 砀山县| 毕节市| 潞城市| 雅安市| 梨树县| 休宁县| 辰溪县| 司法| 霸州市| 五大连池市| 合阳县| 盖州市| 庐江县| 福安市| 东阿县| 曲阜市| 大竹县| 永嘉县| 博野县| 墨玉县| 黄冈市| 宜兴市| 长阳| 蓝山县| 金华市| 红桥区| 黄龙县| 湖北省| 沙河市| 黔江区| 林西县| 保康县|