2016-05-31 13 views
6

3年前のAngularjsのコードベースにreact-reduxを統合することを検討しています。私はすべてのコードベースを一度にリファクタリングするのではなく、私のチームが開発する新しい機能を介して徐々に反応を還元することを導入します。既存のAngularjsアプリケーションへのreact-reduxの統合

  1. このようなベストプラクティスはありますか? (任意のリソースが評価されます)
  2. ngで書かれた古いフィーチャはreact-reduxパーツを含んでいますか、それとも書き直す必要がありますか?
  3. どうすれば同じAPI呼び出しを行うことを避けることができますか? (両方とも同じリソースが必要な場合)
  4. 私は変更を一緒に避けるべきですか?
+0

こんにちは。私たちのチームが同様の問題を解決しようとしているので、あなたが取った決定(とうまくいけばなぜ)を知りたいですか。 – Manu

+0

私たちは数ヶ月間、統合を延期することに決めました。ちょっと自分のことを買った:) –

+0

こんにちはAlex、あなたは普通の還元剤にデータレイヤーを変換することを考えましたか? reduxで始めると、データレイヤーを抽象化することができます。データレイヤーを変換するよりもはるかに簡単かもしれませんが、これは 'ng'コンポーネントを保持するのに役立ちます。 –

答えて

0

私は成功し、私は元の質問で指摘ブラウンフィールドの制限の下でアプリケーションを移行しました。

溶液は二つのアプローチに基づいています。

  1. 小型部品 - かなり多く含まれている成分です。たとえば、通知のドロップダウンなどです。
  2. 私はまだ移行できません - 基本的にいくつかの経路/ビューはまだAngularで書かれています。

の両方がここで提案1と同様の手法を使用近づい: http://softeng.oicr.on.ca/chang_wang/2017/04/17/Using-AngularJS-components-directives-in-React/?utm_source=reactnl&utm_medium=email

TIP:あなたの角度依存性が適切に管理されている場合、それははるかに簡単です。

2
  1. 私は、任意の特定のベストプラクティスを知りませんが、私は最近、これまでのところ大きな効果に私の現在の角度1.5アプリでNG-Reduxの(https://github.com/angular-redux/ng-redux)を使用して開始しました。 Angularコアを維持しながら、Reduxからの単方向データフローと構造化状態管理の利点を得ることは本当にうれしいことです。これにより、一度に1つのエンティティモデルを徐々に移行することもできます。私は自分で使っていませんが、https://github.com/ngReact/ngReactはAngularディレクティブのリアクションコンポーネントをラップするのに利用できます。最終的に反応型レドックススタンドアロンを完全に使用することを目指しているのであれば、それは良い踏み台になる可能性があります。
  2. ng-reduxを既存の機能に統合するためにはリファクタリングが必要でしたが、コントローラ外のデータ用のモデルを既に管理している場合はそれほど悪くはありません。 Ng-reduxでは、コントローラから直接Action Creator関数を呼び出すことができます。コントローラの機能は、通常はUIアクションイベントハンドラに置き換わります。
  3. ng-reduxを使用すると、非同期アクションを使用してredux-thunkを使用してAPI呼び出しを簡単に行うことができます。既存のAngularサービスを使用してAPIにリクエストしてから、その応答を使用して標準のActionをディスパッチして状態を更新することができます。
  4. 少なくとも、アプリケーションのデータフローを標準化するためにng-reduxを統合する価値はあると思います。プロジェクトの整理に役立ち、リファクタリング方法に応じてパフォーマンスが向上する可能性があります。 Angularコアを完全に取り除くことができるまで、コンポーネントをゆっくりと変換しようとしない限り、ngReactの利点は私にはあまり明確ではありません。
+0

ありがとう!それは良いアイデアかもしれませんが、少なくとも私にとってはそれは遅すぎます。私はreact-reduxがAngularを完全にコントロールするより積極的なソリューションを実装し始めました。プロジェクトをまだ終わらせていないので、それを書き留めることはできませんが、完了したらすぐに共有しようとしています。 –

関連する問題