vuex是一個專門為vue.js設計的狀態管理模式,并且也可以使用devtools進行調試。
備注:本文的示例等代碼將會采用es6的語法。
鏈接
vuex是什么?
先引用vuex官網的話:
Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。
狀態管理模式、集中式存儲管理 一聽就很高大上,蠻嚇人的。在我看來 vuex 就是把需要共享的變量全部存儲在一個對象里面,然后將這個對象放在頂層組件中供其他組件使用。這么說吧,將vue想作是一個js文件、組件是函數,那么vuex就是一個全局變量,只是這個“全局變量”包含了一些特定的規則而已。
在vue的組件化開發中,經常會遇到需要將當前組件的狀態傳遞給其他組件。父子組件通信時,我們通常會采用 props + emit 這種方式。但當通信雙方不是父子組件甚至壓根不存在相關聯系,或者一個狀態需要共享給多個組件時,就會非常麻煩,數據也會相當難維護,這對我們開發來講就很不友好。vuex 這個時候就很實用,不過在使用vuex之后也帶來了更多的概念和框架,需慎重!
vuex里面都有些什么內容?
Talk is cheap,Show me the code. 先來一段代碼間隔下這么多的文字:
const store = new Vuex.Store({ state: { name: 'weish', age: 22 }, getters: { personInfo(state) { return `My name is ${state.name}, I am ${state.age}`; } } mutations: { SET_AGE(state, age) { commit(age, age); } }, actions: { nameAsyn({commit}) { setTimeout(() => { commit('SET_AGE', 18); }, 1000); } }, modules: { a: modulesA }}這個就是最基本也是完整的vuex代碼;vuex 包含有五個基本的對象:
新聞熱點
疑難解答
圖片精選