2017-11-17 5 views
1

私は物事を単純にしておきたいだけです - ルーティング解決なしで私のアプリケーションで以前のコンポーネントのデータ状態を解決するAngular 2/4はどのように実装されていますか?私は、データやアイテムを表示するためのいくつかのAPIリクエストを行うビュー特定のコンポーネントをアップ発射ルートビューに移動します)ここで角度2/4ルーティング:ネイティブモバイルアプリのように機能するのか、状態を解決する必要がありますか?

シナリオ

1で推奨角度設定(CLI^4.2.4)を使用しています

2)アイテムをクリックして、データのAPIリクエストも行う別のコンポーネントを使用して別のビューに移動する

3)ブラウザをクリックすると、前のビューが表示されます(ストレステストと異なるIDEの使用常に一貫しているとは限りません。私は心配しています)

ブラウザのキャッシュ/ヒープにコンポーネントの以前の状態が保存されているか、これを達成するためにAngularフレームワークが何らかの魔法を実行していますか? ネイティブモバイルアプリでは、以前のビューは実際には決して "逃げない"レイヤーに過ぎないことを認識しています。新しいビューを選択すると、古いビューがバックグラウンドで表示されます。それとも間違っているのですか?

最後のプロジェクトでは、以前のビューのデータを取得するためにビューリゾルバを使用しました。実装に時間がかかりましたが、完璧に機能しました。私は、将来のプロジェクトのために解決さを使用すると、音の決定であるか、新しい角度

+1

角度は以前の状態を保存しません。以前のルートに戻った場合は、ルーティングがトリガーされ、最初のようにビューが再描画されます。 API呼び出しを実行すると、このコンポーネントをレンダリングするたびにAPIコールが再度実行されます。しかし、いくつかのキャッシュにAPIデータを格納し、ビューをレンダリングするときにこのキャッシュからデータを取得することができます。この種の状態を管理するには、reduxまたはngrxを見てください。 –

+0

ええと、私はredux/fluxの状態マシンのデザインパターンが良い解決策であることに同意します(Reactはこれで素晴らしいです:-)私はちょうどそのドキュメントの通り、角度ルーティングの推奨範囲にとどまりようとしています。自動化されたものだけが私を恐怖にしています。私はこの質問をコミュニティに浮かべたいと思っていました。ありがとう! – Bdrizzle

答えて

0

のデータの読み込みと保存状態のちょうどやり過ぎと実際に負けパフォーマンス機能は、2つの異なる懸念されているかどうかを確認するには好奇心旺盛です。

角度を自動的に実行するのいずれかが、両方を実現する組み込みツールを提供しますしません。あなたができる、APIからデータをロードするために

:ルートコンポーネントがインスタンス化される前に、あなたの場合router resolver内のデータを使用して、データを必要とする場合

  • は、コンポーネント内のデータをロード

    • 負荷データがまだ読み込まれている間にコンポーネントをすぐに表示したい場合(まだデータが存在しないときにコンポーネントが "空"状態を処理できることを確認する必要があります)

    あなたはあなたのアプリケーションで解決データを保存したい場合は、次のことができます。サービスで

    • ストアデータ
    • ngrx
    • ストアなどのデータストア内のデータをブラウザでデータ記憶メカニズムのようなものlocalStorage

    あなたの目標を達成するために使用するのは、アプリケーションのニーズと個人の好みによって大きく異なります。

    あなたも、あなたのアプリケーションの別の部分ではコンポーネント内のデータをロード中に、アプリケーションの一部にデータをロードするためにリゾルバを選択することができます。

  • +0

    ありがとう@jvandemo!私は、データがコンポーネントにロードされているという単純な事実は、(私は過去にサービス、ストレージ、リゾルバを使用していた)質問に答えていると思います。最初から複雑なアプリケーションもあります(特に並行性が懸念される場合)。新しいバージョンのAngular LOLで状況が変わるのではないかと思います – Bdrizzle

    関連する問題