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