2017-05-22 7 views
2

私はアプリケーションを書くためにAngularを使用していますが、Reduxngrx/storeを使用してアプリケーションの状態を保存しています。各ルータのナビゲーションでreduxストアをリセットする必要がありますか?

すべてが正常に動作しますが、今、私のアプリケーションはかなり大規模な得ることを、私は次の観察に来た:私は私のバックエンドからフェッチ異なるリゾルバ、必要なすべてのデータを使用し、ほぼ各ページ/リソースについて

この特定のページを正しく表示して操作することができます。

このリゾルバでは、このページをアプリケーションの以前の状態から独立させることができます。だから、

アプリケーションがロードされてから開始された場合、のは言わせて: https://myapp.com/resourcetype1/resourceId

リゾルバがID resourcetype1をロードするには、箱から出して動作するように私のページの順序でをRESOURCEID。完全に各ルータのナビゲーション開始に私Reduxのストアをリセットすることをお勧めすることができれば、私は思っていた、ことを知って

私は、これは2つの利点を持っていると思う:

  • は、以前に実行されたページからの残留データなしクリーナーReduxのストアを提供します。
  • それぞれの 'ページ表示'の前に空の格納場所を提供すると、ページが以前に読み込まれたページのデータを使用していることを検出するのに役立ちます(urmを使用して '直接'読み込まれた場合にクラッシュします)。

だから、質問は以下のとおりです。

  • あなたはこの反射についてどう思いますか?
  • あなたの習慣は何ですか?
  • 還元ポイントをある時点でリセットしていますか?

答えて

2

本当にアプリケーションによって異なります。

たとえば、すべてのページに処理する複雑なデータセットがあるため、すべてのページが他のページと完全に独立しているため、Reduxを使用している場合は、変更ごとにそのページをクリーニングする必要があります。

少し奇妙に感じます。あなたが話しているリソースは何ですか?以前のリソースに戻ってきませんか?

私のアプリケーションの1つでは、私はワークスペースを持っています。また、各作業領域には多くのデータを含めることができます。ユーザーは頻繁にワークスペースを変更することはありません。そうしたときには、以前のワークスペースに戻っていない可能性があります。したがって、ユーザーが別のワークスペースに移動するたびに、私は(ほぼ)すべてのレデューサーをきれいにします。

ただし、ユーザーが同じ作業領域にいる限り、私はほとんどの情報を保持しています。これは、ユーザーが作業領域を選択したばかりの頃、何もほとんどないためです。次に、いくつかの詳細をナビゲートすると、アプリケーションはデータを取得して、対応するレデューサー内にデータを格納しています。

ユーザーが何らかのデータを見るために戻ったときに、アプリケーションがデータをフェッチしている間に初めてレイテンシが発生し、2回目と+時に、ユーザーは既にストアに入っているものを(即座に)見ます。もちろん、最新のものかどうかを確認するためにデータを取得しようとしますが、変更されていなければ、ユーザーは息を飲んでそのデータとやりとりすることができます。

関連する問題