因爲多個狀態分散的跨越在許多組件和交互間各個角落,大型應用複雜度也常常逐漸增加。vue提供了vuex庫進行組件數據管理vue
Vuex 是一個專爲 Vue.js 應用程序開發的狀態管理模式。它採用集中式存儲管理應用的全部組件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化vuex
store
stata
Getters
Mutations
Actions
Modules數據庫
const store = new Vuex.Store({ state: { count: 0 },//存儲數據 mutations: { increment (state) { state.count++ } }//函數 })
store.commit('increment')//在外部引用時通常用this.$store.commit('increment')
用來存放函數緩存
store.commit('')異步
store.commit 傳入額外的參數,即 mutation 的 載荷(payload)函數
const store= new Vuex.Store({ state:{ count:0, nub1:2, nub2:3 }, mutations:{ jia(state,arg){ state.count+=arg.n }, jian(state,arg){ state.count-=arg.n } }, })
Action 相似於 mutation,不一樣在於:this
Action 提交的是 mutation,而不是直接變動狀態。
Action 能夠包含任意異步操做。//依賴於mutationscode
乍一眼看上去感受畫蛇添足,咱們直接分發 mutation 豈不更方便?實際上並不是如此,還記得 mutation 必須同步執行這個限制麼?Action 就不受約束!咱們能夠在 action 內部執行異步操做:開發
computed:rem
computed:{ ...Vuex.mapState(['count','nub1','nub2']), ...Vuex.mapGetters(['he']) },