2 回答

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

TA貢獻1831條經(jīng)驗 獲得超9個贊
那你為什么不用原生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;
上面的方法肯定不行,在復雜的程序中 要封裝成方法來修改
然后就有了register
和dispatch
為了 devtools
便于追蹤調(diào)試 vuex
做了自己的封裝 Mutation
commit
使得狀態(tài)必須同步提交 在js
中肯定會有異步 所以有了 Action
dispatch
用來異步操作
像上面的你會發(fā)現(xiàn)做著做著就封裝成立vuex
或者類似的狀態(tài)管理
添加回答
舉報