vuex是vue框架中的狀態機,通俗一點vuex是個專門管理資料的倉庫。
vuex主要有5個屬性,state、getter、action、mutation、module
vuex中的state裡面存放資料源,state裡面存放的資料是響應式的,如果倉庫裡的資料發生變化,那依賴這個資料的元件也會發生更新。
怎麼做到的??????????通過mapstate把state對映到元件中的計算屬性(computed)中,倉庫的資料一變,元件對映的資料也會跟著一起變。
vuex中的getter可以對state中的資料進行處理,相當於state的計算屬性,同樣可以使用vuex的mapgetter將getter對映到元件的computed中。
在vuex中想要更改state中資料的狀態的唯一方法就是提交mutation,例如我們要更新更改state中的資料就要使用到mutation,但mutation是同步的,當我們需要進行非同步操作的話我們需要使用到action屬性。
action的目的也是更改state的狀態,不一樣的是,action提交的就是mutation,但實現了非同步操作。總而言之,同步的話可以直接提交mutation,非同步就用action提交mutation。
怎麼使用mutation和action??可以用mapaction將寫好的方法對映到元件中的method中
state相當於元件的data
getter相當於資料的計算屬性
mutation和action相當於用來更改資料的方法
從元件角度來看,如果元件要管理要維護的資料不多,我們可以不用vuex,但需要管理的資料一多,元件**就很雜亂(畢竟元件還要寫元件自身的內容),再者如果兩個元件都需要同乙個資料,那在兩個元件裡面就要寫兩次。所以不如把資料放到倉庫裡管理,元件裡寫元件的內容,管理資料交給vuex來完成。在後期對資料進行維護的時候我們只需要到倉庫裡修改就行。
如果不用vuex,
1.可維護性會下降,想修改資料要維護三個地方;
2.可讀性會下降,因為乙個元件裡的資料,根本就看不出來是從哪來的;
3.耦合度會增加;
為什麼要用 enable shared from
樓主 hma if you think you can,you can.panrainbow 憂鬱淡藍 於 tue nov 9 11 48 38 2010 提到 引入enable shared from this的原因是可以實現返回值為指向該類本身的 shared ptr,為什麼以this為拷貝構造...
為什麼要用補碼
在探求為何機器要使用補碼之前,讓我們先了解原碼,反碼和補碼的概念.對於乙個數,計算機要使用一定的編碼方式進行儲存.原碼,反碼,補碼是機器儲存乙個具體數字的編碼方式.原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 1 原 0000 0001 1 原 1000 ...
為什麼要用AndroidStudio
原因一 android studio是基於intellij idea開發的,所以android studio繼承了intellij idea的所有功能.原因二 android studio是谷歌開發的,專門用於android開發的編輯器,換句話說是親兒子,谷歌會把所有好吃的好用的先給親兒子.原因三 ...