Vuex是否可以理解成為組件間的通信機(jī)制
我類比了一下Vuex與Linux的管道和Websocket,感覺上有一點(diǎn)類似的地方:
-都是有一個(gè)共享資源;
-主要包括消息接收與發(fā)送兩個(gè)部分;
ws負(fù)責(zé)的是服務(wù)端與客戶端之間的通信,Vuex負(fù)責(zé)的是Vuex.js與各組件之間的通信。
但是這么一來(lái)store里面的對(duì)象為什么不是data,而是state,這么想豈不是當(dāng)成了全局變量;
而且如果只是為了實(shí)現(xiàn)在info里面add,在about里面數(shù)字++的效果,Vue里面應(yīng)該有更方便的消息傳遞機(jī)制才對(duì),而不是通過(guò)中轉(zhuǎn)來(lái)實(shí)現(xiàn)。
還請(qǐng)老師和各位熱心的朋友們看一下我的理解是否有問(wèn)題。
2019-05-30
你可以看看vuex的概念,如果把state單純當(dāng)成是全局變量是不對(duì)的。
1. vuex不單純是起到了“全局變量”的作用
它加入了單向數(shù)據(jù)流的機(jī)制,所以如果是單純的全局變量,所有人都能改,那就亂套了不是。
store里面的state,只能通過(guò)mutations來(lái)改。
而且加入了一些新的特性,比如actions(異步),getters(計(jì)算屬性),這些在實(shí)際的項(xiàng)目中,都是非常好用的。
2. 組件間的通信方式還有很多種,選擇合適項(xiàng)目本身的才最重要
2019-05-31
謝謝老師的回復(fù),我弄明白了:
1,action里面是用來(lái)寫commit的,這些在課程中被寫在了組件的函數(shù)里,getters相當(dāng)于computed;
2,Vuex是取代Props這種父子組件傳值,且彌補(bǔ)兄弟組件傳值手段的方法。