vuex 命名空間的使用與報錯問題

2021-10-23 19:26:00 字數 1592 閱讀 3688

預設情況下,模組內部的 action、mutation 和 getter 是註冊在全域性命名空間的。

弊端1:不同模組中有相同命名的mutations、actions時,不同模組對同一 mutation 或 action 作出響應。

弊端2:當乙個專案中store分了很多模組的時候,在使用輔助函式mapstate、mapgetters、mapmutations、mapactions時,很難查詢,引用的state、getters、mutations、actions來自於哪個模組,不便於後期維護。

store/index.js

import vue from

'vue'

import vuex from

'vuex'

import cart from

'./modules/cart'

import products from

'./modules/products'

import createlogger from

'../../../src/plugins/logger'

vue.

use(vuex)

const debug = process.env.

node_env

!=='production'

export

default

newvuex.store(}

)

store/modules/cart.js

const

state=(

)=>

}const getters =

const mutations =

}const actions =

export

default

呼叫:

import

from

"vuex"

;export

default

}

第二種:

import

from

'vuex'

;const

=createnamespacedhelpers

('cart');

export

default

, methods:

}}

報錯問題:[vuex] unknown mutation type: cart/addnumber

找了一整天,都懷疑人生了,後來發現,引入的store路徑不對

main.js下

import store from

'./store/index'

;// 改為:'../../store/index'

// 因為我們的專案有兩個store,路徑不對,所以一直報錯說沒找到這個方法

newvue()

.$mount()

;

命名空間的使用

在我們寫大的程式時,上萬行,十萬行,或者更多時,那時可能 那麼,如何去解決這樣的錯誤呢?我們又不能邊寫邊告訴別人,哎,我這變數名我用了,你不能再用了 哪的多麼麻煩啊!而且,那麼多的資料得定義多麼多的名字啊,我想定個名字也得需要很多時間吧 命名空間的一般形式 namesapce 名字 下面我們來編寫乙...

命名空間的使用

引入的原因在c 中,名稱可以是變數 函式 結構 列舉以及類和機構的成員。隨著工程的增大,名稱相互衝突的可能性也隨著增加。在使用多個廠商的類庫時可能導致名稱衝突。c 提出了namespace命名空間解決方法,只要再加一層空間就可以了。為什麼stl程式中一般要加入using namespcae std ...

命名空間的使用

include include 命名空間的定義 定義一塊命名空間,名字叫 namea namespace namea namespace aa namespace nameb using namespace namea int g b 全域性的g b 命名空間的使用 1 通過命名空間名字和 域解析符...