摘要:是什么官方文檔說(shuō)道是一個(gè)專為應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式。觸發(fā)之別名篇觸發(fā)之對(duì)象展開(kāi)運(yùn)算符篇觸發(fā)之對(duì)象展開(kāi)運(yùn)算符別名篇先引用官方文檔的說(shuō)法類似于,不同在于提交的是,而不是直接變更狀態(tài)。
Vuex是什么
官方文檔說(shuō)道:Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化
什么是狀態(tài)管理模式state,驅(qū)動(dòng)應(yīng)用的數(shù)據(jù)源;
view,以聲明方式將 state 映射到視圖;
actions,響應(yīng)在 view 上的用戶輸入導(dǎo)致的狀態(tài)變化。
Mutation 觸發(fā)之 mapMutations 別名篇
Mutation 觸發(fā)之對(duì)象展開(kāi)運(yùn)算符篇
Mutation 觸發(fā)之對(duì)象展開(kāi)運(yùn)算符別名篇
Action
先引用官方文檔的說(shuō)法
Action 類似于 mutation,不同在于:
Action 提交的是 mutation,而不是直接變更狀態(tài)。
Action 可以包含任意異步操作。
實(shí)現(xiàn)上是沒(méi)問(wèn)題,action 調(diào)用 mutation,但關(guān)于異步要放到 action 的說(shuō)法,個(gè)人觀點(diǎn)是沒(méi)有這個(gè)必要,在 mutation 的小結(jié)中有說(shuō)到過(guò),mutation 只做同步也不是制性的
在使用 Action 前先與 Mutation 做個(gè)小結(jié)
action 并不是必須的,項(xiàng)目中完全可以不需要 action
異步操作可放 mutation 和 action,只要開(kāi)發(fā)時(shí)方便,都沒(méi)有影響
關(guān)于官方說(shuō) action 異步,mutation 同步的說(shuō)法只是為了能用 devtools 追蹤狀態(tài)變化。
action 中的方法和 mutation 一樣,最多只有兩個(gè)形參,第一個(gè)為 context,可以理解為 store,第二個(gè)為手動(dòng)傳的參數(shù)
action 用 commit() 來(lái)觸發(fā) mutation
view 層通過(guò) store.dispath 來(lái)分發(fā) action
簡(jiǎn)單使用在 action
store.jsimport Vue from "vue" import Vuex from "vuex" Vue.use(Vuex) let state = { count: 0 } let getters = { total: (state) => (symbol) => { return (symbol || "$") + state.count; } } let mutations = { increment(_state, n){ console.log(arguments) _state.count += n || 1; }, decrement(){ state.count -= 1; } } let actions = { increment(context, n){ context.commit("increment", n) } } const store = new Vuex.Store({ state, getters, mutations, actions }) export default store分發(fā) action mapActions
和 mutation 的使用方法基本一樣
methods: { ...mapActions(["increment"]), ...mapActions({add: "increment"}) }Module
const moduleA = { state: { ... }, mutations: { ... }, actions: { ... }, getters: { ... } } const moduleB = { state: { ... }, mutations: { ... }, actions: { ... } } const store = new Vuex.Store({ modules: { a: moduleA, b: moduleB } }) store.state.a // -> moduleA 的狀態(tài) store.state.b // -> moduleB 的狀態(tài)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104522.html
摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥(niǎo)雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門(mén),久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...
摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥(niǎo)雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門(mén),久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...
摘要:從今天起我們開(kāi)始討論的面向?qū)ο竺嫦驅(qū)ο蟾拍罾斫饷嫦驅(qū)ο笳Z(yǔ)言有個(gè)標(biāo)志它們都具有類的概念,通過(guò)類可以創(chuàng)建任意多個(gè)具有相同屬性和方法的對(duì)象。 從今天起我們開(kāi)始討論javascript的面向?qū)ο?面向?qū)ο蟾拍罾斫?面向?qū)ο笳Z(yǔ)言有個(gè)標(biāo)志=>它們都具有類的概念,通過(guò)類可以創(chuàng)建任意多個(gè)具有相同屬性和方法的對(duì)象。面向?qū)ο笥腥筇匦? 封裝 繼承 多態(tài) 但JS中對(duì)象與純面向?qū)ο笳Z(yǔ)言中的對(duì)象是不同的 J...
摘要:從今天開(kāi)始研究一下的異步相關(guān)內(nèi)容,感興趣的請(qǐng)關(guān)注同期異步系列文章推薦異步中的回調(diào)異步與異步之異步之異步之和異步之一異步之二異步實(shí)戰(zhàn)異步總結(jié)歸檔什么是異步我們知道的單線程的,這與它的用途有關(guān)。 從今天開(kāi)始研究一下javascript的異步相關(guān)內(nèi)容,感興趣的請(qǐng)關(guān)注 同期異步系列文章推薦javascript異步中的回調(diào)javascript異步與promisejavascript異步之Prom...
閱讀 3420·2021-11-24 09:38
閱讀 3196·2021-11-22 09:34
閱讀 2112·2021-09-22 16:03
閱讀 2373·2019-08-29 18:37
閱讀 383·2019-08-29 16:15
閱讀 1774·2019-08-26 13:56
閱讀 867·2019-08-26 12:21
閱讀 2208·2019-08-26 12:15