web-dev-qa-db-ja.com

手動で状態をlocalStorageに永続化するのではなくredux-persistを使用するのはなぜですか?

もう1つの質問方法は、localStorage(rehydrate)に保存されたデータのみでアプリを起動し、すべてのredux状態の変更をlocalStorage(persist)に保存する場合は、 redux-persist anyを使用することです。 Dan Abramovがここで説明しています のような独自のソリューションを使用する方が良いですか?

Redux-persistには他にもたくさんの機能があることを理解しており、私自身もredux-persist-crosstabを使用できるように(異なるタブで実行されているアプリ間の変更に対処できるようにするために)それを使い始めましたが、それはどうでしょうか。最も基本的なシナリオでそれを使用するにはやり過ぎです。特に、persist/REHYDRATEをランダムに呼び出すなど、理解するのが難しく、面白いことをすることがあるためです。

ここで明らかな何かが欠けていますか?ありがとう

5
mezod

redux-persistの使用法は、アプリケーションのユースケースによって異なります。

まず、redux-persistの主な機能のいくつかを強調しておきましょう

  • PersistGate の使用法は、persistedコンポーネントを表示するための使用法とともに、状態がloadingを取得するまでrendering of the componentsの遅延を自動的に提供します。

  • persistStorepersistReducerpersistObjectなどの複数のタイプに基づいて永続化するカスタム関数

  • AutoMergingおよびinitialStatesレベルに基づくさまざまな状態からのshallowdeep

  • おそらくblacklistingwhitelistingreducersの最も重要な機能

  • shallowレベルpersistenceおよびdeepレベルpersistenceのネストされた永続性

  • migrationsを使用して永続化し、redux-storeのさまざまなバージョンを格納します。

  • immutablecompressionencryptfilterなどをサポートするように変換します。

作成するapplicationdevelopmentの目的のためだけであることを考えると、最大でPersistGatepersistStore、そしておそらくblacklistwhitelistのレデューサーが必要になりますが、それでもかなりの量の作業が必要になりますアプリケーションに何が必要かを知っていることを考慮して

productionレベルでスケーリングが発生しやすいアプリケーションの場合、少なくとも上記の5 / 7機能が必要になります。このモジュールがないと、compressionencryptionなどのモジュールをインストールする必要があるかもしれません。さまざまなバージョンのredux-storeretrievedisplayを適切に保存する方法を見つけてください。そのredux-store状態のrehydrationとともに、要件に適合する可能性のあるもの。

これにはさらに多くの影響がありますが、これについては後で説明します。したがって、プロジェクトの要件に基づいて、このパッケージを使用してredux-store storageを管理することが有益であると思います。

16
Pritish Vaidya