Vuex 核心屬性 下

2022-02-14 04:18:24 字數 1264 閱讀 5762

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...