Vuex簡單介紹

    Vuex 是一個專爲 Vue.js 應用程序開發的狀態管理模式。它採用集中式存儲管理應用的所有組件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化

    Vuex主要有兩個作用:(1)全局數據存儲和狀態管理,Vuex 的狀態存儲是響應式的。當 Vue 組件從 store 中讀取狀態的時候,若 store 中的狀態發生變化,那麼相應的組件也會相應地得到高效更新。通過vuex可以實現全局狀態的實時更新,例如在父組件home.vue中顯示username,當我們在子組件中改變了username,通過vuex我們就可以實現實時更新而不需要手動刷新。(2)組件之間的通信,利用vuex可以方便地實現父組件與子組件、子組件之間的通信。

Vuex有五個主要概念

一、State

單一狀態樹。簡單來說就是一份狀態數據。基本結構:

在組件中獲取狀態數據的方式是

 

二、Getter

可以認爲是store的計算屬性,就像計算屬性一樣,getter 的返回值會根據它的依賴被緩存起來,且只有當它的依賴值發生了改變纔會被重新計算。

 

三、Mutation

更改 Vuex 的 store 中的狀態的唯一方法是提交 mutation。

state中:

mutation中:

 

在組件中改變socketId時:

mutation都是同步事務,必須是同步函數

 

四、Action

上面說到mutation只能處理同步函數(其實可以處理異步,但是不建議使用,會造成混亂),action就是用來處理異步操作的。一些異步操作可以寫在action中,如向後臺請求。Action提交的是mutation,再由mutation改變狀態。一個action鍾可以執行多個mutation.

在組件中通過stored.dispatch分發action

store中action下:

接下來由mutation去改變狀態

 

五、Module

模塊化是爲了優化處理複雜的應用。爲了避免一個store對象過於臃腫,可以將store分割成模塊。每個模塊擁有自己的 state、mutation、action、getter。

我們在充電樁微信的兩個工程中(用戶版本和安裝版本)都使用了module。將微信授權和接口調用相關的狀態及方法單獨放在wechat.js中,並在根store(store.js)引入

 

 

 

參考資料:

https://vuex.vuejs.org/zh/

https://www.jianshu.com/p/a0c11ae01991

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章