Vuex狀態管理模式的面試題及答案


1、vuex有哪幾種屬性?
答:有五種,分別是 State、 Getter、Mutation 、Action、 Module


2、vuex的State特性是?
答:
一、Vuex就是一個倉庫,倉庫里面放了很多對象。其中state就是數據源存放地,對應於與一般Vue對象里面的data
二、state里面存放的數據是響應式的,Vue組件從store中讀取數據,若是store中的數據發生改變,依賴這個數據的組件也會發生更新
三、它通過mapState把全局的 state 和 getters 映射到當前組件的 computed 計算屬性中


3、vuex的Getter特性是?
答:
一、getters 可以對State進行計算操作,它就是Store的計算屬性
二、 雖然在組件內也可以做計算屬性,但是getters 可以在多組件之間復用
三、 如果一個狀態只在一個組件內使用,是可以不用getters


4、vuex的Mutation特性是?
答:
一、Action 類似於 mutation,不同在於:
二、Action 提交的是 mutation,而不是直接變更狀態。
三、Action 可以包含任意異步操作



5、Vue.js中ajax請求代碼應該寫在組件的methods中還是vuex的actions中?
答:
一、如果請求來的數據是不是要被其他組件公用,僅僅在請求的組件內使用,就不需要放入vuex 的state里。
二、如果被其他地方復用,這個很大幾率上是需要的,如果需要,請將請求放入action里,方便復用,並包裝成promise返回,在調用處用async await處理返回的數據。如果不要復用這個請求,那么直接寫在vue文件里很方便。


6、不用Vuex會帶來什么問題?
答:

一、可維護性會下降,你要想修改數據,你得維護三個地方

二、可讀性會下降,因為一個組件里的數據,你根本就看不出來是從哪來的

三、增加耦合,大量的上傳派發,會讓耦合性大大的增加,本來Vue用Component就是為了減少耦合,現在這么用,和組件化的初衷相背。

但兄弟組件有大量通信的,建議一定要用,不管大項目和小項目,因為這樣會省很多事

 

 

嗯,就醬~~

 

 

參考  http://www.bslxx.com/a/vue/mianshiti/2017/1024/1075.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM