2 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
vuex
除了提供全局變量,它還能:
抽象業(yè)務(wù)邏輯,減少重復(fù)代碼;比如異步獲取的數(shù)據(jù),不需要每個(gè)地方都寫請(qǐng)求接口的代碼,只需要
store.dispatch('actionName')
統(tǒng)一數(shù)據(jù)來(lái)源;一個(gè)數(shù)據(jù)可能來(lái)自:1.服務(wù)端 2.
web socket
的推送 3.響應(yīng)用戶操作之后對(duì)數(shù)據(jù)執(zhí)行的運(yùn)算符操作;沒有使用vuex
,你要在不同的地方寫這三種其一的獲取/修改數(shù)據(jù)的代碼,而使用vuex
只需要一句store.dispatch('actionName')
要不要使用vuex
,答案很明顯??!

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
那你為什么不用原生js
開發(fā) 用vue
呢?
下面就拿window.obj
用開發(fā)舉例
window.obj = { count: 1, todos: [ { id: 1, text: '...', done: true }, { id: 2, text: '...', done: false } ]}
如果要修改狀態(tài)
//a組件 window.obj.count+=1; //b組件 window.obj.count+=5; // c組件window.obj.count=10;
上面的方法肯定不行,在復(fù)雜的程序中 要封裝成方法來(lái)修改
然后就有了register
和dispatch
為了 devtools
便于追蹤調(diào)試 vuex
做了自己的封裝 Mutation
commit
使得狀態(tài)必須同步提交 在js
中肯定會(huì)有異步 所以有了 Action
dispatch
用來(lái)異步操作
像上面的你會(huì)發(fā)現(xiàn)做著做著就封裝成立vuex
或者類似的狀態(tài)管理
添加回答
舉報(bào)