web-dev-qa-db-ja.com

ここで還元が必要ですか?

進行中のプロジェクトで、私のチームはREST APIに大きく依存する新しいWebアプリケーションを構築しています。反応を試すことにしたので、私たちは自然にreduxとミドルウェアを実装するようになりました。ただし、プロジェクトのさらに奥に、すべてのapi関連ロジックを共通のライブラリーにバンドルするのが良いアプローチであることに気付きました。その時点から、フロントエンド(反応)はAPIをクエリするロジックから分離されました。厳しいスケジュールのため、私たちはこの移行を急いで行い、新しいライブラリを実装する多くのreduxコードを残しました。

新しいライブラリは、APIとの完全なやり取りを管理し、さまざまなエンドポイントからコンパイルされた情報を表すさまざまなオブジェクトを通じて抽象化さえします。

問題は、この種のアーキテクチャでのやり直しも必要かどうかです。アクション、レデューサー、ストアが必要なため、単純なアクションに必要なコードの量を完全に複製しているように感じます。私たちが作成したライブラリは独自のストアを保持しているため、reactコンポーネント内から直接使用する必要があるように感じます。これは悪い習慣と見なされますか?

最近、ライブラリのモジュールを作成しました。これは、コンポーネントを表示するかどうかのブールトグルを提供します。私は実際にそれらをコンポーネントに(おそらく小道具として)構築したいと思います。私はこの問題に関する流行語に目がくらんでいると思います、私を啓発してください。

3
Marco Kerwitz

問題は、この種のアーキテクチャを備えたReduxが必要かどうかです。

あなたがあなた自身のものを書くことができるならば、あなたは何も「必要としない」。

あなたが言ったように、ライブラリがあなたのAPI問題を解決するためのあなたの行くところになったなら、そうですあなたはReduxの必死の必要性を持っていません。独自のコードを作成する意思がある場合は、サードパーティのコードは必要ありません。 Reduxは、アプリケーションの状態を1つのオブジェクトまたは状態ツリーに配置することに重点を置いています。自分で問題なくやっている場合は、Reduxは必要ありません。

ライブラリを使用するもう1つの理由は、現時点ではReduxのみを使用することです。後で、状態を保持するために別の方法に切り替えられるようにしたいと考えています。ビジネスロジックとサードパーティの間に独自のレイヤーを置くのは本当にいいことです。そのレイヤーは、状態を永続化する別の方法に切り替えるときに行う必要がある変更を分離できるためです。

あなたのビジネスロジックは、あなたがReduxを使用していることさえ知らないはずです。プラグインのようにReduxを扱います。その後、好きなように使用できます。多分あなた自身のコードです。

2
candied_orange