vuex簡介

Vuex 是一個專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測的方式發(fā)生變化。簡單的來說,就是數(shù)據(jù)共用,對數(shù)據(jù)集中起來進(jìn)行統(tǒng)一的管理

核心概念主要有這些:

State
Vuex 使用單一狀態(tài)樹——是的,用一個對象就包含了全部的應(yīng)用層級狀態(tài),將所需要的數(shù)據(jù)寫放這里,類似于data。
Getter
有時候我們需要從 store 中的 state 中派生出一些狀態(tài),使用Getter,類似于computed。
Mutation
更改 Vuex 的 store 中的狀態(tài)的唯一方法,類似methods。
Action
Action 提交的是 mutation,而不是直接變更狀態(tài),可以包含任意異步操作,這里主要是操作異步操作的,使用起來幾乎和mutations方法一模一樣,類似methods。
Module
當(dāng)應(yīng)用變得非常復(fù)雜時,store 對象就有可能變得相當(dāng)臃腫。Vuex 允許我們將 store 分割成模塊(module)。每個模塊擁有自己的 state、mutation、action、getter、甚至是嵌套子模塊。

vuex中mutation為什么是同步?
原因: 使用devtools調(diào)試的時候會有問題。
一條重要的原則就是要記住 mutation 必須是同步函數(shù)。為什么?請參考下面的例子:

mutations: {
  someMutation (state) {
    api.callAsyncMethod(() => {
      state.count++
    })
  }
}

現(xiàn)在想象,我們正在 debug 一個 app 并且觀察 devtool 中的 mutation 日志。每一條 mutation 被記錄,devtools 都需要捕捉到前一狀態(tài)和后一狀態(tài)的快照。然而,在上面的例子中 mutation 中的異步函數(shù)中的回調(diào)讓這不可能完成:因?yàn)楫?dāng) mutation 觸發(fā)的時候,回調(diào)函數(shù)還沒有被調(diào)用,devtools 不知道什么時候回調(diào)函數(shù)實(shí)際上被調(diào)用——實(shí)質(zhì)上任何在回調(diào)函數(shù)中進(jìn)行的狀態(tài)的改變都是不可追蹤的。

摘自vuex官網(wǎng):
https://vuex.vuejs.org/zh/guide/mutations.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Vuex是什么? Vuex 是一個專為 Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應(yīng)用的所有組件...
    蕭玄辭閱讀 3,233評論 0 6
  • Vuex 是一個專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)...
    白水螺絲閱讀 4,797評論 7 61
  • Vuex 是什么? Vuex 是一個專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應(yīng)用的所有...
    skycolor閱讀 929評論 0 1
  • State 單一狀態(tài)樹 Vuex 使用單一狀態(tài)樹——是的,用一個對象就包含了全部的應(yīng)用層級狀態(tài)。至此它便作為一個“...
    peng凱閱讀 742評論 2 0
  • 《怪誕行為學(xué)》一書中的實(shí)驗(yàn)結(jié)果顯示,我們所有人的決策過程不如傳統(tǒng)經(jīng)濟(jì)學(xué)理論所假定的那么理性。我們的非理性行為既...
    eebd4933252b閱讀 240評論 0 0

友情鏈接更多精彩內(nèi)容