Angular 6アプリケーションの状態管理にngxsを使用したい。
しかし、それが大規模プロジェクトにとって成熟しているかどうかはわかりません。
Ngrxとngxsのパフォーマンスの違いに関する記事が見つかりません。誰かがそれについていくつかの情報を提供できますか?
パフォーマンスメトリック:ストアから多数のアイテムを取得し、ストアに書き戻します。
これがReddit ((Angular2 + community) からの良い答えです。これは、両方をテストしてNGXSに切り替えた開発者からのものです。
私の経験を共有したいと思います。中規模のエンタープライズアプリがあります。 NGRXから始めましたが、すぐに
NGRXコードを理解してチームメートに書き込むのは非常に困難です。
NGRXは定型的な地獄です。あなたはそれに多くの時間を費やします。
「エフェクト」のコンセプトは優れていますが、単純化できる複雑さの層が追加されるだけです。
開発者エクスペリエンス(DX)は恐ろしいものでした。
その後、NGXSに切り替えました。
最小限のボイラープレートがあります。すぐに「アクション」にジャンプします:D。
そのDXに嬉しかったです。
チームメイトにとって理解がはるかに簡単になり、誰もが突然生産的になりました。
サーバーコールがリデューサーにあるなど、いくつかのトレードオフがありますが、しばらくしてから使用することは理にかなっています。
プラグイン!ロギングからフォーム処理までのプラグインはたくさんあります(これまでに素晴らしいことです)。
私が経験していることから、NGXSは書き込みが非常に簡単で、遅延ロードされた状態での作業が簡単です。 Redux FPパラダイムではなく、OOPのような単純な構文です。アクションとセレクターを装飾し、メモされた状態にサブスクライブし、ディスパッチされたアクションをどこにでもキャッチします。
しかし、本質的にオフラインの最初のアプリケーション用のストレージプラグインに関しては、落とし穴を見つけました。 5MBの制限がある同期ローカルストレージを使用し、ビッグデータをストレージに書き込む必要があるときにUIを停止させます。ただし、プラグインの上にカスタムストレージソリューションを作成することもできます。スケーラブルで拡張可能で、utilクラスを簡単に注入できます。ドキュメントはできる限りシンプルです。
2つのアクションをディスパッチする必要があったため、最近NGRXで問題が発生しましたが、2番目のアクションは最初のアクションの成功に依存していました。エフェクトでそれを解決しますが、それでも同じことが起こりました。 Dispacherがアクションの最後にオブザーバブルを返すので、NGXSでそれを解決できます。
一般的に、NGXSは非常にうまく機能しており、パフォーマンスは非常に似ています。ネストされた複数のレベルを持つアーキテクチャで多くのデータを更新する必要があり、更新時間に違いはないようです。