vuexのモジュールの名前空間とは正確には何ですか?質問する

vuexのモジュールの名前空間とは正確には何ですか?質問する

最近始めましたvuex

公式docsよく説明しているモジュールですが、理解できたかどうかわかりません名前空間モジュールの右側にあります。

名前空間についてもっとわかりやすく説明してくれる人はいませんか?いつ/なぜそれを使用するには?

とても有難い。

ベストアンサー1

非常に大きな状態オブジェクトを持つ大きなアプリの場合、多くの場合、それを次のように分割します。モジュール

これは基本的に、状態を小さな部分に分割することを意味します。注意点の 1 つは、モジュールは同じ状態に統合されるため、同じメソッド名を使用できないことです。たとえば、次のようになります。

moduleA {
  actions:{
    save(){}
  }
}

moduleB {
  actions:{
    //this will throw an error that you have the same action defined twice
    save(){}
  }
}

そのため、これを有効にするには、モジュールを名前空間として定義するオプションがあり、その後、異なるモジュールで同じメソッドを使用できます。

moduleA {
  actions:{
    save(){}
  },
  namespaced: true
}

moduleB {
  actions:{  
    save(){}
  },
  namespaced: true
}

そして、次のように呼び出します。

this.$store.dispatch('moduleA/save')
this.$store.dispatch('moduleB/save')

mapGetterまたはを使用している場合mapActions、ゲッターが次の形式になっているため、状況が少し複雑になる可能性があることに注意してください。['moduleA/client']

したがって、本当に必要な場合にのみ使用してください。

おすすめ記事