Vuex子模塊調(diào)用子模塊的actions或mutations實現(xiàn)方式
Vuex子模塊調(diào)用子模塊的actions或mutations
項目場景
Vuex中子模塊如何調(diào)用子模塊的actions或mutations
問題描述
因為有的子模塊開啟了命名空間,其他子模塊不能直接訪問
如果子模塊沒有開啟命名空間,默認mutations和actions是掛載到全局上 都可以直接調(diào)用
這是準備調(diào)用的子模塊代碼 permission.js
const state = {}
const mutations = {}
const actions = {}
}
export default {
namespaced: true, // 開啟命名空間
state,
mutations,
actions
}
解決方案
使用 {root:true}
調(diào)用的子模塊的代碼
const actions = {
async lgout(context) {
// 調(diào)用 permission 另一子模塊下的方法
context.commit('permission/setRoutes', [], { root: true })
}
}
vuex中actions和mutations區(qū)別
定義:
在Vuex中,actions和mutations是兩個核心概念,用于管理應(yīng)用程序狀態(tài)的變化。
Mutations
mutations是用于修改Vuex狀態(tài)的唯一方法。
它們是同步操作,意味著它們必須是純函數(shù),以確保狀態(tài)的可預測性。
這意味著mutations應(yīng)該只用于同步操作,例如在響應(yīng)用戶事件時更新狀態(tài)。
它們不應(yīng)該包含任何異步代碼,如API調(diào)用。
舉個例子,下面的代碼演示了如何定義一個名為increment的mutation,用于將state中的count屬性增加
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment(state) {
state.count++
}
}
})
store.commit('increment') // 調(diào)用mutation
Actions
actions用于執(zhí)行異步操作或包含異步操作的操作序列。
它們可以包含任何異步代碼,例如API調(diào)用或其他異步操作,但不能直接修改狀態(tài)。
相反,它們通過commit觸發(fā)mutations來間接修改狀態(tài)。
舉個例子,下面的代碼演示了如何定義一個名為fetchData的action,它會異步獲取數(shù)據(jù)并提交mutation來更新狀態(tài):
const store = new Vuex.Store({
state: {
data: null
},
mutations: {
setData(state, data) {
state.data = data
}
},
actions: {
async fetchData({ commit }) {
const response = await fetch('https://api.example.com/data')
const data = await response.json()
commit('setData', data)
}
}
})
store.dispatch('fetchData') // 調(diào)用action
總之,mutations和actions有不同的角色和職責。
mutations用于同步狀態(tài)的修改,actions用于執(zhí)行異步操作并間接修改狀態(tài)。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決vue?app.js/vender.js過大優(yōu)化啟動頁
這篇文章主要為大家介紹了解決vue?app.js/vender.js過大優(yōu)化啟動頁過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10
Vue 子組件使用 this.$parent 無法訪問到父組件數(shù)據(jù)和方法(解決思路)
這篇文章主要介紹了Vue 子組件使用 this.$parent 無法訪問到父組件數(shù)據(jù)和方法,解決思路也很簡單,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-07-07
vue中iframe使用以及結(jié)合postMessage實現(xiàn)跨域通信
這篇文章主要介紹了vue中iframe使用以及結(jié)合postMessage實現(xiàn)跨域通信方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue應(yīng)用中使用xlsx庫實現(xiàn)Excel文件導出的詳細步驟
本文詳細介紹了如何在Vue應(yīng)用中使用xlsx庫來導出Excel文件,包括安裝xlsx庫、準備數(shù)據(jù)、創(chuàng)建導出方法、觸發(fā)導出操作和自定義Excel文件等步驟,xlsx庫提供了強大的API和靈活的自定義選項,使得處理Excel文件變得簡單而高效2024-10-10

