Redux: Reduxの時代は過ぎ去りたした

䜜成日 2015幎09月22日  Â·  50コメント  Â·  ゜ヌス: reduxjs/redux

私のチヌムず私はreduxの孊習に倚くの時間を費やし、それを䜿甚しお新しいアプリケヌションの構築を開始したした。 http://softwareengineeringdaily.com/2015/09/18/flux-redux-and-react-hot-loader-with-dan-abramov/にある゜フトりェア゚ンゞニアリングポッドキャストで@gaearonを聎いおいたした。 50分の時点で、 @ gaearonは「もちろん、宣蚀型デヌタのフェッチは未来であり、reduxは宣蚀型デヌタのフェッチを提䟛しないため、reduxは過去のものです」ず述べおいたす。

Reduxで䜕かを構築する必芁がありたすか、それずもRelay / GraphQLに移行する必芁がありたすか

ecosystem question

最も参考になるコメント

倚くの人がReduxにかなり満足しおいたす。 あなたは呚りに尋ねるべきです—私はこの質問に答える資栌がありたせん。 アプリがFacebookのように非垞にデヌタ量が倚い堎合耇雑な関係を持぀倚くのネストされた゚ンティティ、GraphQLバック゚ンドに投資しおRelayを孊ぶこずをお勧めしたす。 私はそれに぀いお良いこずを聞いただけです。

もちろん、Reduxはより明瀺的であり、宣蚀型デヌタのフェッチを解決したせん。 ReduxずGraphQLを

ReduxはRelayよりもはるかに䜎いレベルであり、プレヌンなJSオブゞェクトおよび関数が「過去」であるよりも「過去」ではありたせん。 リレヌはフレヌムワヌクであり、サニティチェックを行わないReduxは10個の10ラむナヌ関数であるため、スコヌプが異なるこずは驚くべきこずではありたせん。 あなたに最適なものを遞んで、私たちに知らせおください。

党おのコメント50件

倚くの人がReduxにかなり満足しおいたす。 あなたは呚りに尋ねるべきです—私はこの質問に答える資栌がありたせん。 アプリがFacebookのように非垞にデヌタ量が倚い堎合耇雑な関係を持぀倚くのネストされた゚ンティティ、GraphQLバック゚ンドに投資しおRelayを孊ぶこずをお勧めしたす。 私はそれに぀いお良いこずを聞いただけです。

もちろん、Reduxはより明瀺的であり、宣蚀型デヌタのフェッチを解決したせん。 ReduxずGraphQLを

ReduxはRelayよりもはるかに䜎いレベルであり、プレヌンなJSオブゞェクトおよび関数が「過去」であるよりも「過去」ではありたせん。 リレヌはフレヌムワヌクであり、サニティチェックを行わないReduxは10個の10ラむナヌ関数であるため、スコヌプが異なるこずは驚くべきこずではありたせん。 あなたに最適なものを遞んで、私たちに知らせおください。

GraphQLの宣蚀型フェッチは、驚くべき䞀流です。 ただし、Relayにはただ䞻にHoC APIがあり、それ自䜓は宣蚀型ではありたせん。 Relayがコンポヌネントツリヌから切り離されたより柔軟なAPIを提䟛する堎合、適切なReduxバむンディングを䜜成できたすか

2぀の異なる問題を解決する2皮類のシステムだず思いたす。
このチケットは、ハンマヌの時間が経過したかどうかを尋ねる倧工のようなものです。
私が䞻匵するgraphqlベヌスのシステムは、倚くのアプリにずっお過剰に蚭蚈された゜リュヌションです。逆に、耇雑なデヌタ構造を持぀アプリは、reduxを䜿甚しお構築された堎合、おそらく䞍十分に蚭蚈されおいたす。

私が䞻匵するgraphqlベヌスのシステムは、倚くのアプリにずっお過剰に蚭蚈された゜リュヌションです。逆に、耇雑なデヌタ構造を持぀アプリは、reduxを䜿甚しお構築された堎合、おそらく䞍十分に蚭蚈されおいたす。

それを眮く良い方法; それは私もそれに぀いおどう感じおいるかです。

@gaearonはreduxで良い仕事を続けたす 最高のツヌルの1぀です 私はそれを私の䌚瀟の5぀の倧きなアプリず2぀の小さなアプリで䜿甚しおいお、それを愛しおいたす

@gaearonはreduxで良い仕事を続けたす 最高のツヌルの1぀です 私はそれを私の䌚瀟の5぀の倧きなアプリず2぀の小さなアプリで䜿甚しおいお、それを愛しおいたす

100

私は圌らが同じではないず思いたす

  • リレヌ-サヌバヌからのデヌタフェッチ管理を解決するため
  • redux-アプリケヌションの状態管理を解決するため

倚くの耇雑なアプリケヌションには、管理する必芁のあるサヌバヌに関係のない状態が含たれおいたす。 リレヌを䜿甚する堎合は、最終的には自分自身もreduxが必芁になるず思いたす。 反察に、リレヌは非垞に玠晎らしいブヌストのように芋えたすが、サヌバヌ関連のものだけです

質問は、リレヌがフラックスに觊発されたデザむンパタヌンずどのように関連しおいるかです。 リレヌはどこで終わりたすか、い぀Reduxが必芁ですか リレヌフラックス2.0ですか

Todoリレヌの䟋reduxは廃止されたすか

たぶん、GraphQLずの間で自分自身をマップする方法ずタむミングをレデュヌサヌに䌝える方法はありたすか 耇雑ではないこずを蚀うのではなく、それを理解するための最も簡単な方法は䜕ですか。

リレヌずは䜕かに぀いおもっず孊ぶ必芁がありたす。 確かなのは、数癟行のコヌドではありたせん。

@oriSomethingあなたは完党に正しくありたせん。 リレヌは倚くの状態管理も解決したす。

@gyzerok私はクラむアント偎のアプリケヌションの状態を意味したした

@oriSomethingはい、クラむアント偎のアプリケヌションの状態に぀いお話しおいたす

@gyzerok私はそれを逃したに違いない。 これに぀いおのリンクを教えおいただけたすか

@oriSomethingリレヌは暗黙的に管理するため、特別なリンクはありたせん。 たぶん、あなたはFBがリレヌに぀いお話しおいるのを芋るこずができたす。 圌らは、Relayがキャッシュの問題をどのように解決するかに぀いお話したす。 クラむアント偎のアプリケヌションキャッシュ=状態。 はっきりずした話を芚えおいたせん、ごめんなさい。

@oriSomethingは、開発者が明瀺的な状態管理を行う必芁がある唯䞀の堎所です。

@gyzerokわかりたした、その堎合、リレヌが行うサヌバヌに関連しない状態管理はありたすか 私が理解しおいる限り、そうではありたせんか

@oriSomething正しく理解

@oriSomethingはい、そうです=> https://facebook.github.io/relay/img/Guides-Containers-HOC-Relay.png
チェック https 

クラむアントに十分なデヌタがない堎合にのみ、Relayはサヌバヌに远加デヌタの芁求を送信したす。

ReduxはRelayよりもはるかに䜎いレベルであり、プレヌンなJSオブゞェクトおよび関数が「過去」であるよりも「過去」ではありたせん。 リレヌはフレヌムワヌクであり、サニティチェックを行わないReduxは10個の10ラむナヌ関数であるため、スコヌプが異なるこずは驚くべきこずではありたせん。

そこで、私は楜しみのためにslim-redux.jsを䜜成したした。コメント、開発者ぞの譊告、サニティチェックのないReduxのバヌゞョンです。 これは、すべおの重芁なReduxテストサニティチェックテストを陀くに合栌し、99行ですwink:。 これは、RelayずReduxが倧きく異なるスコヌプを持぀ツヌルであるずいう私の䞻匵を封印するはずです。

@IwanKaramazow私は十分に明確ではなかったず思いたす、私が蚀おうずしおいるのは、すべおのデヌタがサヌバヌに関するものではなく、管理するサヌバヌに関係のないデヌタがあり、本圓にリレヌずは思わないこのデヌタを管理できる堎合でも、「ツヌル」に移動したす

@oriSomething䟋を挙げおいただけたすか

@mattappersonに完党に同意し

私は、䟋えば、クラむアント偎のフォヌムの状態に぀いお協議を@oriSomething考える@IwanKaramazow

GraphQLのため、Redux =>リレヌから移動したした。 私のアプリケヌションのほずんどすべおのリ゜ヌスは階局的でした。 それらは圓然、ネストされた゚ンティティであるこずが理にかなっおいたす。 これらのモデルのキャッシュをReduxに保持するこずは玠晎らしいこずでした。 私は自分のデヌタを正しく芋おいお、玠晎らしいredux-devtoolsですばやく繰り返すこずができたした。

しかし、GraphQLがなければ、リモヌトリ゜ヌスをreduxツリヌにマッピングするために数回のラりンドトリップを行う必芁がありたした。

  1. / resource1-list
  2. / resource2-listresource1 =
  3. / resource3-listresource2 =

明らかに、これはRESTの問題であり、Reduxの問題ではありたせん。 以前にいく぀かのRedux-GraphQLバむンディングを芋おいたら、おそらくそれらを䜿甚しおいたでしょう。 私のアプリケヌションでは、Relayの採甚はほずんど倉わりたせんでした。 代わりの@connect私が䜿甚しおいたすRelay.createContainer 。 どちらの補品も、APIが異なるアヌキテクチャの同じビゞョンを持っおいたす。 私はこれに぀いお簡単な投皿を曞きたした。

私は珟圚reduxずrelay / graphqlの䞡方を䜿甚しおおり、relayはデヌタのフェッチに優れおいたすが、垞にreduxを䜿甚しおいるこずがわかりたす。 私は珟圚2぀の理由でreduxを䜿甚しおいたすが、将来さらに倚くの理由を芋぀けるこずができたす

1デヌタベヌスに存圚しないコンポヌネント間で共有する必芁があるその他の状態
2フォヌムの準備。 実際には、アプリケヌションの䞀郚に、送信ボタンのあるツヌルバヌコンポヌネントず、すべおの入力フィヌルドを保持するパネルコンポヌネントがありたす。 フォヌムに入力するず、reduxに保存されおいる「フォヌムレデュヌサヌ」に入力をデバりンスしお、送信する前にツヌルバヌがデヌタにアクセスできるようにしたす。

たた、reduxdevtoolsは玠晎らしいです。

男ああ男。 私は今日Relayを読んでいたすが、コヌドが読みやすく、理解しにくいこずを認めなければなりたせん。 Reduxの䟋をいく぀か芋お、コヌドを読むだけでコアコンセプトを理解するこずができたした。

チュヌトリアルやTodoの䟋は、゚レガントではないようです。 ReactずFLUXはシンプルであるこずに誇りを持っおいるず思いたす。 珟時点では、Relayからそのような感芚は埗られおいたせん。

リレヌはReactず密接に関係しおおり、ほずんどのアプリの耇雑さが比范的過剰であるこずを考えるず、私は最近Falcorにもっず熱心になっおいたす。 実際、promiseベヌスのむンタヌフェヌスのため、Reduxでほずんどの非同期動䜜を行う方法に非垞にうたく適合したす。 たた、Reactから切り離されおいるため、アプリのどこでも簡単に䜿甚できたす。 たた、サヌバヌ偎のレンダリングはただ完党には焌き付けられおいたせん。これは私にずっお初心者ではありたせん。

たた、「RelayLite」に䌌たreact-resolverも気に入っおい

@timdorrすべおの状態をFalcorに保存しようずしたしたか たずえば、レデュヌサヌにFalcorオブゞェクトを䜿甚させる。

未だに。 私はただ実隓モヌドにあり、プロゞェクトで揚げる倧きな魚を持っおいるので、ただ十分な泚意を払っおいたせん。

私はFalcorで遊んだこずがあるので、それを匷くお勧めしたす。 実際、私は珟圚、ReduxアプリずFalcorバック゚ンドの統合に取り組んでいたす。 Relayのク゚リ集玄は提䟛されたせんが、クラむアントラむブラリに非垞に高床なキャッシュレむダヌがあり、オヌバヌフェッチを防ぎたす。 それで十分かもしれないず思いたすが、時間が経おばわかりたす。

@gaearon宣蚀型デヌタフェッチを䜿甚しお

䞻な違いは、RelayGraphQLではデヌタフェッチがより宣蚀的であるように思えたすElmはURLを指定するように求めたすが、戻っおくるデヌタを䞊べ替えるのはあなた次第です。その他はすべおElmでより宣蚀的です。 。

実際、Elm゚コシステムはRelay / GraphQLの移怍の恩恵を受けるこずができるようです。

ク゚リの集蚈に関しおは、 Model.batchメ゜ッドがありたす。 間隔ミリ秒単䜍たたはスケゞュヌラヌのいずれかが必芁ですが、スケゞュヌラヌに関するドキュメントはあたりありたせん。

私に聞いおも構わないのなら、ReduxずFalcorをどのように統合しおいたすか 私のすべおの詊みは私を苛立たせたした。

たた、Falcorのreduxの䟋を芋たいず思いたす。 私はすべおのFalorドキュメントを読み、relay / graphqlよりもはるかに簡単であるこずに同意したす。 それほど匷力ではありたせんが。

ReduxずRelayの関係、およびそれらを䞀緒に䜿甚するこずが理にかなっおいるのかどうか疑問に思っおいる人は、 https  ください。

芁点は、Relayが最終的に耇数の゜ヌスバック゚ンド、ロヌカル゚フェメラルデヌタなどからのデヌタを凊理するため、䜿甚しおいる可胜性のある他のFlux実装を眮き換えるこずです。

https://github.com/facebook/relay/issues/168#issuecomment -135169255

リレヌはFluxパタヌンの実装であるこずに泚意しおくださいFluxはそれ自䜓を眮き換えるこずができたすか;-)。

OpenGovではReduxずRelayの䞡方を倚甚しおいたす。 確かに、Relayに移行しおから、 reducers/フォルダヌははるかに小さくなりたした。 ただし、Reduxは、アプリケヌションレベルのロヌカル状態管理に䟝然ずしお非垞に圹立぀こずがわかりたした。 おそらくい぀の日か、リレヌはその地域でもそれに取っお代わるでしょう。 しかし、 @ josephsavonaが䞀床蚀ったように、「Reduxアヌキテクチャ」は本圓にただ...関数です:)い぀かラむブラリからReduxに移行したずしおも、䞍倉の状態曎新、リアクティブデヌタフロヌ、レデュヌサヌを䜿い続けるでしょう。近い将来の機胜など。 これはReduxIMOの貎重な郚分であり、必ずしもこのリポゞトリに存圚する100行未満のラむブラリではありたせん。 もちろん、コミュニティもそうです。

アプリがFacebookのように非垞にデヌタ量が倚い堎合耇雑な関係を持぀倚くのネストされた゚ンティティ、GraphQLバック゚ンドに投資しおRelayを孊ぶこずをお勧めしたす。

同意したしたが、GraphQL + Relayは、適床なサむズのアプリ、特にれロから開始する新しいプロゞェクトにずっおも優れた投資であるず私は䞻匵したす。

リレヌを䜿甚しおいないため、正確には適合したせんが、Meteorコミュニティからのこの意芋のあるフルスタックアプロヌチに぀いおどう思いたすか https://github.com/mattkrick/meatier

GraphQL / RelayやDatomic / Om.Nextのような深いアヌキテクチャだけがオブゞェクト/リレヌショナルむンピヌダンスの問題を解決できたす...これが私の考えです-フィヌドバックをいただければ幞いです。

GraphQL / RelayReduxの終わり

このトピックRelay / Redux、GraphQL、および耇雑さの軜枛に興味を持っおいる人はたくさんいるようです。私は、アプリの状態に察するReduxアプロヌチで非垞にうたく機胜するシンプルで機胜的なGraphQLクラむアントの蚭蚈に取り組んでいたす。

この䞀連の蚭蚈原則に぀いお人々がどう思うか興味がありたす https 

ここに私の2セントを远加するだけですReduxに終わりはないず思いたす。 シンプルで矎しく、倚くの堎合十分です。 JS゚コシステムは非垞に高速で、維持するのが困難です。Reduxは、䜕らかの圢でReactず同様に、しばらくの間信頌できるマむルストヌンです。 ワヌクフロヌを毎月進化させるこずはできたせん少なくずも、私はできたせん。珟圚、Reduxは本圓に良い遞択肢だず思いたす。 倚くのプロゞェクトでは、リレヌおよび䞀般的なデヌタフェッチは必芁ありたせん 

@gaearonこの投皿をしおから数か月が経ちたしたが、ReactカンファレンスでReduxに぀いお講挔したした。 Relay /ず比范しお、ReduxずのGraphQL統合、たたはおそらく3぀すべおの組み合わせに関しお、珟圚どこにいるず思いたすか

@likeabbas GraphQLずReduxの統合をお探しの堎合は、Apolloクラむアントをお詊しください http //docs.apollostack.com/apollo-client/index.html

ただRelayず100の機胜同等性はありたせんが、近づいおいたす。

@likeabbasから質問を゚コヌする@gaearon「どこで私たちが再来ずGraphQL統合の面で今リレヌ/、たたは3぀すべおのおそらく組み合わせず比范されおいるず思いたすか」

いく぀かの簡単な考え。 Reduxは、十分な構造ず十分な柔軟性のバランスを提䟛する汎甚フレヌムワヌクです。 そのため、開発者がナヌスケヌスに合わせおカスタマむズされた状態管理を構築するためのプラットフォヌムを提䟛するず同時に、グラフィカルデバッガヌやミドルりェアなどを再利甚できたす。 そのナヌスケヌスはなくなる可胜性が䜎いように思われるので、「Reduxの時代は過ぎ去った」ずいうよりも、おそらくもっず興味深い質問がありたす。GraphQLクラむアントを構築しおいる堎合、Redux䞊に構築するこずは理にかなっおいたすか

正解が1぀あるかどうかは明らかではないず私は答えたす。 Reduxでの構築は統合共有ツヌル、共有デヌタの恩恵を受ける可胜性がありたすが、カスタムアプロヌチの構築はより倚くの䜜業ですが、よりドメむン固有のツヌルを可胜にし、パフォヌマンスを向䞊させる可胜性がありたす。 ゜フトりェア開発の倚くのものず同様に、それはナヌスケヌスに䟝存したす

@josephsavona それはReduxの_玠晎らしい_芁玄です どこかのドキュメントのためにそれを盗む必芁があるかもしれたせん:)

ええ、このスレッドのタむトルは最適ではなく、質問はちょっず疲れ果おおいるようです。 おそらく、議論を別の堎所に移す時が来たのでしょう。

>.> lock the issue

これを閉じたす。 ずにかく解決策があるかどうかわからない。 Reduxは䜕人かの人々のために働きたす、そしおそれは私にずっお十分です。

おっず、間違ったボタン。 申し蚳ありたせん😄

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡