1.vuex是什麼? 2.vuex的核心概念;(vuex的屬性;vuex的資料傳遞流程;) 3.為什麼要用vuex?
vuex
面試題- 對vuex的理解
當面試官問我們對vuex的理解的時候,我們不能只說“vuex是一個專為vue.js應用程式開發的狀態管理模式”,儘量不要讓面試官連續追問(總會問到自己不會的然後說你實力還差那麼點來可以得降薪),應該從三個方面一次性去說清楚:
1.vuex是什麼?
2.vuex的核心概念;(vuex的屬性;vuex的資料傳遞流程;)
3.為什麼要用vuex?
1.vuex是一個專為vue.js應用程式開發的狀態管理模式(它採用集中式存貯管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化)。
2.vuex的核心概念;(vuex的屬性;vuex的資料傳遞流程;)
vuex五大核心屬性:state,getter,mutation,action,module
state:儲存資料,儲存狀態;在根例項中註冊了store 後,用 this.$store.state 來訪問;對應vue裡面的data;存放資料方式為響應式,vue元件從store中讀取資料,如資料發生變化,元件也會對應的更新。
getter:可以認為是 store 的計算屬性,它的返回值會根據它的依賴被快取起來,且只有當它的依賴值發生了改變才會被重新計算。
mutation:更改 Vuex 的 store 中的狀態的唯一方法是提交 mutation。
action:包含任意非同步操作,通過提交 mutation 間接更變狀態。
module:將 store 分割成模組,每個模組都具有state、mutation、action、getter、甚至是巢狀子模組。
3.為什麼要用vuex?
由於傳參的方法對於多層巢狀的元件將會非常繁瑣,並且對於兄弟元件間的狀態傳遞無能為力。我們經常會採用父子元件直接引用或者通過事件來變更和同步狀態的多份拷貝。以上的這些模式非常脆弱,通常會導致程式碼無法維護。所以我們需要把元件的共享狀態抽取出來,以一個全域性單例模式管理。在這種模式下,我們的元件樹構成了一個巨大的“檢視”,不管在樹的哪個位置,任何元件都能獲取狀態或者觸發行為!另外,通過定義和隔離狀態管理中的各種概念並強制遵守一定的規則,我們的程式碼將會變得更結構化且易維護。
相關文章
- 【前端筆記】Vuex 是什麼,為什麼需要前端筆記Vue
- 為什麼我們需要 VuexVue
- vuex 中的核心概念及原理Vue
- [譯]為什麼 VueX 是前端與 API 之間的完美介面Vue前端API
- vue(23)Vuex的5個核心概念Vue
- 什麼時候該用vuex?Vue
- vuex核心概念---action、getter、moduleVue
- [譯] 一張圖弄明白 Vuex 裡該存放什麼樣的資料Vue
- [Vuex系列] - Vuex中的getter的用法Vue
- vuex 的概念和基礎使用Vue
- vue中vuex的五個基本屬性和用法Vue
- vue中為什麼使用vuex?應用場景有哪些?Vue
- Vuex的基本使用Vue
- [Vuex]Vuex學習手記Vue
- Vuex 的非同步資料更新(小記)Vue非同步
- vuex-pathify 一個基於vuex進行封裝的 vuex助手語法外掛Vue封裝
- Vuex持久化外掛(vuex-persistedstate)-解決重新整理資料消失的問題Vue持久化
- VuexVue
- vuex 原始碼:深入 vuex 之 getterVue原始碼
- vuex 原始碼:深入 vuex 之 namespacedVue原始碼namespace
- vuex 原始碼:深入 vuex 之 moduleVue原始碼
- vuex 原始碼:深入 vuex 之 actionVue原始碼
- vuex 原始碼:深入 vuex 之 mutationVue原始碼
- 什麼是 cookie 的 httponly 屬性CookieHTTP
- spring事務的傳播屬性是什麼?它會影響什麼?Spring
- 關於Vuex的理解Vue
- Vuex and TypescriptVueTypeScript
- EventBus & Vuex?Vue
- Vuex & AxiosVueiOS
- Vuex 提升Vue
- vue - VuexVue
- Vuex教程Vue
- vuex給getter傳參的官方例子解讀Vue
- Vuex如何實現資料共享Vue
- 手撕Vuex-Vuex實現原理分析Vue
- Vuex 進階——模組化組織 VuexVue
- [Vuex系列] - 初嘗Vuex第一個例子Vue
- VueX Vue: Could not find a declaration file for module vuex.Vue