2017-05-23 3 views
0

私はVuex & Vuejs(フラックスアーキテクト)をCRMのシングルページアプリケーションに使用しています。 連絡先ページには、現在の連絡先に関連するタスクのリストが表示されています。サイドバーには、現在ログインしているユーザーのタスクの一覧があります。Flux(vuex)ストアをグローバルイベントバスに結合しますか?

これらのタスクのコレクションは別々の店舗に保管されています。私は最良の解決法がわからない:

  1. 更新後に、リストと更新タスクオブジェクトの両方に存在する場合は、検索タスクの検索があり、それが突然変異状態である。
  2. 更新後のリクエストではグローバルイベントバスを使用し、必要に応じて各ストアはタスクオブジェクトをリッスンして更新する必要があります。
+0

なぜ複数の店舗を選択しましたか? Vuexのポイントは、すべてのアプリケーション状態を1か所にまとめることです。そのため、グローバルイベントバスのようなものを使用する必要はありません。 –

+0

私は複数のコレクションを意味します。ユーザタスクのリストは、現在のコンタクトタスクの探索とは全く別個のものであるが、場合によっては、共通のタスクを有することもあるからである。例えば、ユーザは今日のサイドバーで10タスクを持っており、現在、彼の最後のタスクが1年前に完了したという連絡先を探っているか、または今日(サイドバー内で)関連するタスクを持っている連絡先を探っている。 @EricGuan –

答えて

1

これは実際にあなたの要件に依存しますが、私が知ることの1つは、2つの独立した店舗+バスを使用することがReduxの全目的を破っているということです。

アプリケーション内のタスクが同じスコープを共有し、自分や他のユーザーに訪問/管理しているタスクを割り当てることができる場合は、スコープ(チームなど)からすべてのタスクを実行して表示できますArray.filter関数を使用して異なるゲッターを使用して別の場所に配置します。

タスクの数が多すぎてすべてがロードできない場合は、ストア内の単一のタスクリストを実行して、単一のURLからデータを取り込みます。

すなわち: - 私が+私は を管理しています、現在のユーザーのタスクを持っているすべてのタスクを与える - 私はすべての私が持っているタスク+これは厄介取得することができますが、この検索

に一致するタスクを与えます要件がより複雑で混乱する可能性がある場合しかし、可能であれば単一の店舗でアプリケーションを構築し、バスを避けてください。小規模なアプリケーションにのみ推奨されます。

関連する問題