?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
import Vuex from 'vuex' const store = new Vuex.Store({ ...options })
state
類型: Object
Vuex store 的根state對(duì)象。
Details
mutations
類型: { [type: string]: Function }
在 store 上注冊(cè) mutation,Handler function總是接收 state 作為第一個(gè)參數(shù)(如果定義在模塊中,則作為模塊的本地狀態(tài)),如果有則接收 payload 作為第二個(gè)參數(shù)。
actions
類型: { [type: string]: Function }
在 store 上注冊(cè) action。Handler function接收一個(gè) context 對(duì)象,這個(gè)對(duì)象提供以下屬性:
{ state, // 等同于 store.state,如果在模塊中則是本地狀態(tài) rootState, // 等同于 store.state,模塊中才有 commit, // 等同于 store.commit dispatch, // 等同于 store.dispatch getters // 等同于 store.getters }
getters
類型: { [key: string]: Function }
在 store 上注冊(cè) getter,getter 方法接收一下參數(shù):
注冊(cè)的 getter 被暴露在 store.getters。
state, // 如果在模塊中定義則為模塊的本地狀態(tài) getters, // 等同于 store.getters rootState // 等同于 store.state
modules
類型: Object
包含了子模塊的對(duì)象,會(huì)被合并到 store,形如:
每個(gè)模塊可以包含 state 和 mutations,就像根模塊的配置。一個(gè)模塊的狀態(tài)使用模塊的 key 附加到 store 的根狀態(tài)上。模塊的 mutation 和 getter 將接收 module 的本地狀態(tài)作為第一個(gè)參數(shù),而不是根狀態(tài),并且模塊 action 的 context.state 也指向本地狀態(tài)。
{ key: { state, mutations, actions?, getters?, modules? }, ... }
plugins
類型: Array<Function>
一個(gè)插件方法的數(shù)組被應(yīng)用于 store 上。這些插件直接接收 store 作為唯一參數(shù),也可以監(jiān)聽 mutation(用于外部地?cái)?shù)據(jù)持久化、記錄或調(diào)試)或者提交 mutation (用于內(nèi)部數(shù)據(jù),例如 websocket 或 某些觀察者)。
strict
類型: Boolean
默認(rèn)值: false
強(qiáng)制 Vuex store 進(jìn)入嚴(yán)格模式,在嚴(yán)格模式下,在 mutation 處理器以外修改 Vuex state 則會(huì)拋出錯(cuò)誤。
state
類型: Object
The root state. Read only.
getters
類型: Object
暴露注冊(cè)的 getter,只讀。
commit(類型: string, payload?: any) | commit(mutation: Object)
提交一個(gè) mutation.
dispatch(type: string, payload?: any) | dispatch(action: Object)
分發(fā)一個(gè) action。返回 action 方法的返回值,如果多個(gè)處理器被觸發(fā),那么返回一個(gè) Pormise。
replaceState(state: Object)
替換 store 的根狀態(tài),僅用于調(diào)試 state。
watch(getter: Function, cb: Function, options?: Object)
響應(yīng)式的監(jiān)測(cè)一個(gè) getter 方法的返回值,當(dāng)值改變時(shí)調(diào)用回調(diào)。getter 接收 store 的 state 作為唯一參數(shù)。接收類似 vm.$watch 方法的參數(shù)的可選對(duì)象。
要停止檢測(cè),調(diào)用該方法的返回值 (watch 的返回值是個(gè)方法)。
subscribe(handler: Function)
訂閱(注冊(cè)監(jiān)聽) store 的 mutation。handler 會(huì)再每個(gè) mutation 完成后調(diào)用,接收 mutation 的描述對(duì)象和 經(jīng)過(guò) mutation 后的狀態(tài)作為參數(shù):
這是插件中常見的用法。
store.subscribe((mutation, state) => { console.log(mutation.type) console.log(mutation.payload) })
registerModule(path: string | Array<string>, module: Module)
注冊(cè)一個(gè)動(dòng)態(tài)模塊。
unregisterModule(path: string | Array<string>)
注銷一個(gè)動(dòng)態(tài)模塊。
hotUpdate(newOptions: Object)
熱加載新的 action 和 mutation。
mapState(map: Array<string> | Object): Object
創(chuàng)建一個(gè)組件的計(jì)算屬性選項(xiàng),該選項(xiàng)會(huì)返回 Vuex store 的子樹。
mapGetters(map: Array<string> | Object): Object
創(chuàng)建一個(gè)組件的計(jì)算屬性選項(xiàng),該選項(xiàng)會(huì)返回 getter的計(jì)算后的值。
mapActions(map: Array<string> | Object): Object
創(chuàng)建一個(gè)組件的methods選項(xiàng),該選項(xiàng)返回一個(gè) action。
mapMutations(map: Array<string> | Object): Object
創(chuàng)建一個(gè)組件的methods選項(xiàng),該選項(xiàng)提交一個(gè) mutation。