什么是vuex?
Vuex 是一個(gè)專為Vue.js用程序開發(fā)的狀態(tài)管理模式微峰。
狀態(tài)管理模式中的狀態(tài)是指什么狀態(tài)伙狐?為什么稱之為狀態(tài)?
它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài)痹籍,并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化呢铆。
采用集中式存儲(chǔ)管理————所有組件,也就是說所有組件的狀態(tài)都被集中存儲(chǔ)管理了蹲缠。利用自己的規(guī)則來確保狀態(tài)的變化可預(yù)測(cè)可控棺克。我感覺和單項(xiàng)數(shù)據(jù)流的父子通信有點(diǎn)像,只不過解決的問題不一樣线定,vuex更大逆航。
什么是狀態(tài)管理模式
文檔給出了一下代碼:
new Vue({
// state
data () {
return {
count: 0
}
},
// view
template: `
<div>{{ count }}</div>
`,
// actions
methods: {
increment () {
this.count++
}
}
})
以該小段代碼為例:這個(gè)狀態(tài)管理應(yīng)用包含3個(gè)部分。
- state渔肩,驅(qū)動(dòng)應(yīng)用的數(shù)據(jù)源因俐;
像這樣說state就是一個(gè)數(shù)據(jù)存儲(chǔ)中心,集中式存儲(chǔ)周偎。
view抹剩,以聲明方式將 state 映射到視圖;
view 就是template模板蓉坎。需要數(shù)據(jù)的地方澳眷,那么我猜view和state之間可能會(huì)有一些相應(yīng)的規(guī)則。就像父組件傳遞給子組件需要通過prop而且是單項(xiàng)傳遞一樣蛉艾。
- actions钳踊,響應(yīng)在view上的用戶輸入導(dǎo)致的狀態(tài)變化。
actions也負(fù)責(zé)管理狀態(tài)變化的模塊勿侯。
那么狀態(tài)就應(yīng)該主要指數(shù)據(jù)拓瞪。定義一套規(guī)則,統(tǒng)一存儲(chǔ)所有組件的數(shù)據(jù)助琐,到管理所有數(shù)據(jù)的變化祭埂。這應(yīng)該就是vuex吧,感覺兵钮。