什麼是Vuex?


Vuex是一個專門爲Vuejs開發的狀態管理模式,它採用集中式存儲管理應用的所有組件狀態,然後巴拉巴拉…

好了,用概念來解釋概念那是大佬做的事,Vuex說白了就是一個保存多個組件的公共變量(你可以暫時把狀態理解爲變量)的一個對象,把這個對象封裝在頂層的Vue實例中,以後不管哪個組件想用這些變量,都可以直接從中獲得,或者是向其中寫入新變量。

爲什麼要有這個東西呢?倘若現在你開發了許多個組件,組件1中的有些數據 組件2,3,4,5,6等等也需要使用,那麼你準備怎麼把這些數據傳給它們?父子間通信?那如果這些組件的關係不是父子那麼簡單呢?在一個組件樹裏面,如果層數很高的組件向低層組件傳數據,難道還要麻煩的一步一步傳遞?

這時你就會體會到Vuex的好了。

當然,你可能會覺得實現Vuex這個功能並不難啊,創建一個保存公告信息的對象不就行了:

let shareobj = {}
Vue.prototype.shareobj = shareobj 

因爲所有的組件包括Vue根實例都繼承自Vue,因此只要Vue.prototype加入了shareobj,那麼相當於所有的組件都能夠使用這其中的數據,這不就行了嗎?

哪有那麼簡單,事實上,Vuex還有一個最大的好處,那就是保存在Vuex中的數據都是響應式的,這保證了Vuex中的數據一旦發生更改,與之相關的所有數據都將監聽到這個改動,並實時作出響應。

而用剛纔那種prototype的方式,就不是響應式的了。

那麼,說到這裏,還要順便提一句,什麼樣的狀態適合保存在Vuex中呢?首先,並不是說只要組件共享的狀態都需要保存在Vuex中,如果仍然是需要父子間通信就能獲得的狀態,那其實大可不必放在Vuex中,否則Vuex可能就會保存很多的狀態導致不好管理,一般來說,那些需要在多個界面間共享的狀態,比如用戶的登錄狀態、頭像、或者是商品收藏、購物車等適合保存在Vuex中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章