2017-07-03 18 views
2

私は大規模なVuexプロジェクトを複数のモジュールでセットアップしました。vuexモジュールには名前空間が必要ですか?

https://vuex.vuejs.org/en/modules.html

searchモジュールからゲッターはそうのように対処することができゲッターの例つかむために:私はsearchプロパティを参照することで、モジュールの状態にアクセスする必要があるため

computed: { 
    filters() { 
     return this.$store.state.search.filters; 
    } 
} 

を私のプロパティチェーンでは、私のモジュールの名前空間をまだ必要としていますか?

ドキュメントには、次のように述べている:モジュール内部のデフォルト、アクション、変異とゲッターによって

はまだグローバル名前空間の下に登録 ている - これは、複数のモジュール が同じ突然変異/アクションタイプに対応することができます。

https://vuex.vuejs.org/en/modules.html#namespacing

しかし、モジュールは、店舗に独自のプロパティの下であれば簡単にファイルの簡単な命名規則によって防止することができ、モジュール自体の間で起こることができる唯一の競合ではないでしょうか?

私はここで何が欠けていますか?

答えて

5

しかし、モジュールがストア内の独自のプロパティの下にある場合、モジュール間で起こりうる唯一の競合ではなく、ファイルの簡単な命名規則で簡単に防止できますか?

いいえ、あなたは誤解しています。状態自体は適切な名前空間になっていますが、突然変異、アクション、ゲッタはまだグローバルレベルで収集されています。 1つのアクションをディスパッチし、異なるモジュールからのいくつかのアクションがそれに反応します。

これはデフォルトの動作ですが、良いことは、名前空間の変更、アクション、およびゲッターのオプションがあることです。「namespaced:true」です。

それはここに文書化されています:https://vuex.vuejs.org/en/modules.html#

スクロールダウンし、 "名前空間" のセクションに。

+0

説明をいただきありがとうございます。これでかなり明確になりました。 –

関連する問題