vuex 面試題

一、有哪幾種屬性

有 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就是爲了減小耦合,如今這麼用,和組件化的初衷相背
複製代碼
相關文章
相關標籤/搜索