1.vuex的優(yōu)點(diǎn):
? ? 不同組件數(shù)據(jù)保持同步
? ? 數(shù)據(jù)的修改都可追蹤
2.vuex存儲(chǔ)
? ? 多個(gè)組件共享狀態(tài),才存儲(chǔ)在vuex中
? ? 某個(gè)組件中的私有數(shù)據(jù),存儲(chǔ)在該組件的data中
3.vuex官網(wǎng)地址:https://vuex.vuejs.org/zh/
? ? 在vue項(xiàng)目中引入:npm i vuex
? ? vuex固定配置:

4.創(chuàng)建store倉(cāng)庫(kù)
? ? 建議在src下創(chuàng)建一個(gè)新的文件夾,在其中的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,在計(jì)算屬性computed中展開,然后即可當(dāng)作data中的值一樣使用。
6.vuex-mutations同步修改
? ? mutations是唯一能修改state的地方, 確保調(diào)試工具可以追蹤變化
????mutations函數(shù)內(nèi), 只能寫同步代碼, 調(diào)試工具可追蹤變化過程
????因?yàn)檎{(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)-計(jì)算屬性, 類似于computed
????getters 依賴于 state中原始數(shù)據(jù)的變化,并返回計(jì)算后的新數(shù)據(jù)
? ? 定義:

? ? 使用(與state的使用方式大致相同):
????????????1.this.$store.getters.計(jì)算屬性名
? ? ? ? ? ? 2.映射方法:

