一、有哪幾種屬性
有 5 種,分別是 state、getter、mutation、action、module
state => 基本數據
getters => 從基本數據派生的數據
mutations => 提交更改數據的方法,同步!
actions => 像一個裝飾器,包裹mutations,使之能夠異步。
modules => 模塊化Vuex
二、vuex 的 store 特性是什麼
(1) vuex 就是一個倉庫,倉庫裏放了不少對象。其中 state 就是數據源存放地,對應於通常 vue 對象裏面的 data
(2) state 裏面存放的數據是響應式的,vue 組件從 store 讀取數據,如果 store 中的數據發生改變,依賴這相數據的組件也會發生更新
(3) 它經過 mapState 把全局的 state 和 getters 映射到當前組件的 computed 計算屬性
三、 vuex 的 getter 特性是什麼
(1) getter 能夠對 state 進行計算操做,它就是 store 的計算屬性
(2) 雖然在組件內也能夠作計算屬性,可是 getters 能夠在多給件之間複用
(3) 若是一個狀態只在一個組件內使用,是能夠不用 getters
四、vuex 的 mutation 特性是什麼
action 相似於 muation, 不一樣在於:action 提交的是 mutation,而不是直接變動狀態
action 能夠包含任意異步操做
五、vue 中 ajax 請求代碼應該寫在組件的methods中仍是vuex 的action中
若是請求來的數據不是要被其餘組件公用,僅僅在請求的組件內使用,就不須要放入 vuex 的 state 裏
若是被其餘地方複用,請將請求放入 action 裏,方便複用,幷包裝成 promise 返回
六、不用 vuex 會帶來什麼問題
可維護性會降低,你要修改數據,你得維護3個地方
可讀性降低,由於一個組件裏的數據,你根本就看不出來是從哪裏來的
增長耦合,大量的上傳派發,會讓耦合性大大的增長,原本Vue用Component就是爲了減小耦合,如今這麼用,和組件化的初衷相背
複製代碼