@芥末的糖-----Vuex知識(shí)

1.什么是Vuex?

Vuex 是一個(gè)專(zhuān)為 Vue.js 應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式琼懊。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化交洗。

個(gè)人理解:即為組件間互相傳遞信息

狀態(tài)自管理應(yīng)用包含以下幾個(gè)部分:

  • state,驅(qū)動(dòng)應(yīng)用的數(shù)據(jù)源痢虹;
  • view鸵闪,以聲明方式將 state 映射到視圖;
  • actions概疆,響應(yīng)在 view 上的用戶輸入導(dǎo)致的狀態(tài)變化逗威。

2.什么情況使用Vuex?

雖然 Vuex 可以幫助我們管理共享狀態(tài)岔冀,但也附帶了更多的概念和框架凯旭。這需要對(duì)短期和長(zhǎng)期效益進(jìn)行權(quán)衡。

如果您不打算開(kāi)發(fā)大型單頁(yè)應(yīng)用使套,使用 Vuex 可能是繁瑣冗余的罐呼。確實(shí)是如此——如果您的應(yīng)用夠簡(jiǎn)單,您最好不要使用 Vuex侦高。一個(gè)簡(jiǎn)單的 store 模式就足夠您所需了嫉柴。但是,如果您需要構(gòu)建一個(gè)中大型單頁(yè)應(yīng)用奉呛,您很可能會(huì)考慮如何更好地在組件外部管理狀態(tài)计螺,Vuex 將會(huì)成為自然而然的選擇。

image.png

個(gè)人理解:Action是進(jìn)行異步操作的瞧壮,組件可以直接commit,Devtools監(jiān)聽(tīng)的是Commit

個(gè)人理解:actions直接操作state里的狀態(tài)危尿,但是沒(méi)有了時(shí)間旅行devtools

二.

1.導(dǎo)入Vuex

1.1導(dǎo)入Vuex的幾種方式

  • CDN
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js">
</script>
  • 模塊導(dǎo)入(腳手架安裝時(shí)可選)
npm install vuex --saveyarn add vuex
--------------------------------------------------------------------
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

1.2實(shí)例化

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  }
})
------------------------------------------------
 const vm = new Vue({
    store
    el:'root'.
})

1.3在頁(yè)面調(diào)用時(shí)候

{{$store.state.count}}
--------------------------------
//會(huì)顯示0

1.4在瀏覽器調(diào)用

store.commit('increment')
console.log(store.state.count) // -> 1

———————————————————————————————————————————————

以下是視圖------>狀態(tài)管理的過(guò)程!D俪铡R杲俊!B拊巍<没丁!P≡ā7ㄈ臁!3晏搿0氲取W岢睢!杀饵!

2.獲取Vuex狀態(tài)的方法(沒(méi)有actions的時(shí)候,直接commit的情況)

以下都會(huì)使用此實(shí)例的對(duì)象

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  }
})
  • 2.1.原方法
<div>{{count}}</div>
---------------------------------
 const vm = new Vue({
    computed:{
          count(){
              return this.$store.state.count
          }    
    }
})
  • 2.2.解構(gòu)映射的方法
<div>{{count}}</div>
--------------------------------------
const {mapState} = Vuex

 const vm = new Vue({
    computed:mapState(['count'])
})
//將count映射出來(lái)
1.

3.獲取Vuex的Mutations的方法(沒(méi)有actions的時(shí)候,直接commit的情況)

  • 狀態(tài)管理
<div @click=''getMutations">{{count}}</div>
--------------------------------------
const {mapState} = Vuex

 const vm = new Vue({
    methods:{
        getMutations(){
            this.$store.commit('getMutations')
      }
    }
})

3.2..原方法(傳參的話用原方法)

<div @click=''increment ">{{count}}</div>
//--------------------------------------
const {mapMutations} = Vuex

 const vm = new Vue({
    methods:matMutattions([
        increment 
    ])
})

4.有actions情況CФ凇!G芯唷P喽小!C瘴颉;靶ぁ!F闲摇最筒!

 const vm = new Vue({
    methods:{
        ...matMutattions([
            increment 
        ])
    }

有其他方法都可以添加,在方法里使用this.$store.dispatch(' ( actions里面的方法) ')N颠丁床蜘!

視圖里的方法都需要dispatch,而不是原來(lái)的commit,此時(shí)commit操作在actions里面執(zhí)行!缅叠!

總結(jié)

Vue注意的事項(xiàng):先把所有的鏈都寫(xiě)出來(lái)悄泥,即使是actions是同步的!肤粱!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末弹囚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子领曼,更是在濱河造成了極大的恐慌鸥鹉,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庶骄,死亡現(xiàn)場(chǎng)離奇詭異毁渗,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)单刁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)灸异,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人羔飞,你說(shuō)我怎么就攤上這事肺樟。” “怎么了逻淌?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵么伯,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我卡儒,道長(zhǎng)田柔,這世上最難降的妖魔是什么俐巴? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮硬爆,結(jié)果婚禮上欣舵,老公的妹妹穿的比我還像新娘。我一直安慰自己摆屯,他們只是感情好邻遏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布糠亩。 她就那樣靜靜地躺著虐骑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赎线。 梳的紋絲不亂的頭發(fā)上廷没,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音垂寥,去河邊找鬼颠黎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛滞项,可吹牛的內(nèi)容都是我干的狭归。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼文判,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼过椎!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起戏仓,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤疚宇,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后赏殃,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體敷待,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年仁热,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榜揖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抗蠢,死狀恐怖举哟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情物蝙,我是刑警寧澤炎滞,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站诬乞,受9級(jí)特大地震影響册赛,放射性物質(zhì)發(fā)生泄漏钠导。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一森瘪、第九天 我趴在偏房一處隱蔽的房頂上張望牡属。 院中可真熱鬧,春花似錦扼睬、人聲如沸逮栅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)措伐。三九已至,卻和暖如春军俊,著一層夾襖步出監(jiān)牢的瞬間侥加,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工粪躬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留担败,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓镰官,卻偏偏與公主長(zhǎng)得像提前,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子泳唠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Vuex是什么狈网? Vuex 是一個(gè)專(zhuān)為 Vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件...
    蕭玄辭閱讀 3,120評(píng)論 0 6
  • 目錄 組件化 組件通信 狀態(tài)管理 Vuex 是什么 Vuex 有什么特點(diǎn) Vuex 解決了什么問(wèn)題 什么類(lèi)型的數(shù)據(jù)...
    前端小華子閱讀 1,997評(píng)論 0 16
  • Vuex 的學(xué)習(xí)記錄 資料參考網(wǎng)址Vuex中文官網(wǎng)Vuex項(xiàng)目結(jié)構(gòu)示例 -- 購(gòu)物車(chē)Vuex 通俗版教程N(yùn)uxt....
    流云012閱讀 1,459評(píng)論 0 7
  • Vuex 是一個(gè)專(zhuān)為 Vue.js 應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式警检。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài)孙援,并以相應(yīng)...
    白水螺絲閱讀 4,668評(píng)論 7 61
  • 安裝 npm npm install vuex --save 在一個(gè)模塊化的打包系統(tǒng)中,您必須顯式地通過(guò)Vue.u...
    蕭玄辭閱讀 2,938評(píng)論 0 7