1.vuex的優(yōu)點:
? ? 不同組件數(shù)據(jù)保持同步
? ? 數(shù)據(jù)的修改都可追蹤
2.vuex存儲
? ? 多個組件共享狀態(tài),才存儲在vuex中
? ? 某個組件中的私有數(shù)據(jù)门怪,存儲在該組件的data中
3.vuex官網(wǎng)地址:https://vuex.vuejs.org/zh/
? ? 在vue項目中引入:npm i vuex
? ? vuex固定配置:
4.創(chuàng)建store倉庫
? ? 建議在src下創(chuàng)建一個新的文件夾骡澈,在其中的index.js中進(jìn)行創(chuàng)建。代碼如下:
? ? 在main.js中引入該文件掷空,并引入到Vue中肋殴,路徑中index.js是默認(rèn)尋找的,可省略
5.vuex-state數(shù)據(jù)源
? ? 定義:
? ? 使用:方式1————this.$store.state.變量名
? ? ? ? ? ? ? ? 方式2————映射使用
? ? ? ? 首先坦弟,引入vuex中的mapState护锤,在計算屬性computed中展開,然后即可當(dāng)作data中的值一樣使用酿傍。
6.vuex-mutations同步修改
? ? mutations是唯一能修改state的地方, 確保調(diào)試工具可以追蹤變化
????mutations函數(shù)內(nèi), 只能寫同步代碼, 調(diào)試工具可追蹤變化過程
????因為調(diào)試工具要立刻產(chǎn)生一次記錄, 所以必須是同步的
? ? 創(chuàng)建:
? ? 使用:mutations的使用也分為兩種方式
? ? ? ? ? ? ? ? 方式1:this.$store.commit("方法名",參數(shù))
? ? ? ? ? ? ? ? 方式2:映射方式代碼如下
7. vuex-actions 異步修改
? ? 創(chuàng)建:
? ? 注意:此處調(diào)用mutation中的方法去修改值沧侥,通過store.commit(方法名,參數(shù))
? ? ? ? 使用:1.this.$store.dispatch("異步方法名", 參數(shù));
? ? ? ? ? ? ? ? ? ? 2.映射方式代碼如下魄鸦,大致與mutation相同:
8.vuex-getters
????vuex身上的全局狀態(tài)-計算屬性, 類似于computed
????getters 依賴于 state中原始數(shù)據(jù)的變化拾因,并返回計算后的新數(shù)據(jù)
? ? 定義:
? ? 使用(與state的使用方式大致相同):
????????????1.this.$store.getters.計算屬性名
? ? ? ? ? ? 2.映射方法: