vuex

一、什么時候使用Vuex

如果應(yīng)用比較簡單,就不需要使用Vuex,直接使用父子組件傳值及及它傳值方式即可,使用Vuex就要額外的引入vuex的框架,可能是繁瑣冗余的

   如果需要構(gòu)建一個中大型單頁應(yīng)用,就可以使用vuex更好地在組件外部管理狀態(tài)

二、 Vuex 是什么?

Vuex 是一個專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。

    它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預測的方式發(fā)生變化。

三、Vuex的五個核心概念

1. state: 存儲公共數(shù)據(jù)

2. mutations: 不能包含異步操作

更改 Vuex 的 store 中的狀態(tài)的唯一方法是提交 mutation
 mutation的方法中有兩個參數(shù),第一個是state,第二個是參數(shù)
                mutations: {
                    方法名(state,參數(shù)){
                        state.屬性 = 參數(shù)
                    }
                }
在組件中提交mutations的方法:  this.$store.commit("方法名",參數(shù))

***** state中的數(shù)據(jù)是響應(yīng)式的,數(shù)據(jù)改變,相關(guān)視圖會重新渲染

3. actions:

Action 類似于 mutation,不同在于:

Action 提交的是 mutation,而不是直接變更狀態(tài)。(action不能直接更改state數(shù)據(jù))

Action 可以包含任意異步操作。


**總結(jié)一下: 
mutation不能有異步操作,而action可以有異步操作
mutation可以直接更改數(shù)據(jù),而action只能通過提交mutation,通過mutation的方法來改變數(shù)據(jù)
實際通過組件改變數(shù)據(jù)時,如果沒有異步操作,可以直接提交mutation,如果有異步操作,必須派發(fā)action,通過action提交mutation來更改數(shù)據(jù)

4. getters: 就像計算屬性一樣,getter 的返回值會根據(jù)它的依賴被緩存起來,且只有當它的依賴值發(fā)生了改變才會被重新計算

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

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

  • 1.什么是Vuex? 官方回答:Vuex 是一個專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管...
    Angel_6c4e閱讀 429評論 0 1
  • 目錄 - 1.什么是vuex? - 2.為什么要使用Vuex? - 3.vuex的核心概念?||如何在組件中去使用...
    我跟你蔣閱讀 4,236評論 4 51
  • 一. 什么是Vuex? Vuex是一個專門為Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式, 它采用集中式存儲管理所有組件...
    這個前端不太冷閱讀 595評論 0 2
  • 一、Vuex簡介 ??Vuex 是一個專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應(yīng)用的所...
    無劍_君閱讀 336評論 0 0
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...
    余生動聽閱讀 10,843評論 0 11

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