modules:可以定義新的模組
官方上說,當我們的應用變的非常複雜時,store物件就有可能變得相當臃腫
為了解決這個問題,vuex允許我們將store分割成模組(module),
在這裡,每個模組都擁有自己的state、mutations、actions、getters等
寫個例子吧:首先我們來宣告乙個module,起個名字就叫做modulea吧
const modulea=,
mutations:{},
getters:{},
actions:{}
}const store = new vuex.store(,
mutations:{},
actions:{},
getters:{},
modules:
})
從上面的**可以得知,const store = new vuex.store({}) 是根(root)
那麼在const modulea就是我們分離出去的模組了,下面我們在modulea中的state寫一條資料,看看它是如何被使用的
const modulea =}const store = new vuex.store(
})<
h1>}
h1>
可以看到,我們呼叫的還是根的state,但是我們定義的a:modulea ,將我們在modulea中的state以a的形式給新增到了根的state中去,
所以我們要使用$store.state.a.name來獲取modulea模組中state中的資料
在modulea這模組中的getter可以有三個引數:
const modulea = ,fullname2(state,getters),
fullname3(state,getters,rootstate)
}}
在modulea這模組中的actions中的引數context(上下文)指向問題
const modulea = ,1000)}}
}
物件結構:可以將context解構為state、commit、rootstate,如下面的例子
const modulea = )}}
}
至於在modulea這個分離出來的模組中mutations的使用方法,跟分離前是一樣的
Vuex 核心屬性 中
mutation同步函式 在mutations 中 使用非同步操作的話,頁面上devtools工具無法跟蹤資訊。所以在mutations中的方法必須是同步方法 action的基本定義 我們強調,不要再mutation中進行非同步操作,但再某些情況下,我們確實希望再vuex中使用非同步操作 網路請求等...
Vuex核心屬性(上)
state 單一狀態樹 單一資料來源 主要是用來存放狀態的 如 count 0 getters 類似於單個元件裡面的計算屬性 mutations 狀態更新的唯一方式 commit mutations 主要分為2部分 1.字串的事件型別 increment state 在這裡面 increment 就...
Vuex的五個核心屬性及輔助函式
vuex是什麼?vuex是乙個專門為vue.js應用程式開發的狀態管理模式,它採用了集中式儲存和管理程式所有元件的狀態 主要包括幾個模組 state 儲存所有的變數 state是乙個物件 mutations 直接操作state中的資料 actions 只能呼叫mutations中的方法 getter...