| 再登場 | |
|---|---|
| 原作者 | ダン・アブラモフ、アンドリュー・クラーク |
| 初回リリース | 2015年6月2日[ 1 ] (2015年6月2日) |
| 安定版リリース | |
| リポジトリ | |
| 書かれた | タイプスクリプト |
| プラットフォーム | クロスプラットフォームソフトウェア |
| タイプ | JavaScriptライブラリ |
| ライセンス | MITライセンス |
| Webサイト | redux |
Reduxは、アプリケーションの状態を管理・一元化するためのオープンソースのJavaScriptライブラリです。ReactやAngularなどのライブラリと組み合わせてユーザーインターフェースを構築するのに最もよく使用されます。FacebookのFluxアーキテクチャに類似しており、Elmアーキテクチャもインスピレーションの源として挙げられています。[ 3 ] Dan AbramovとAndrew Clarkによって作成され、2016年半ば以降はMark EriksonとTim Dorrが主なメンテナーを務めています。
Reduxは、シンプルで限定的なAPIを備えた小さなライブラリで、アプリケーションの状態を予測可能なコンテナとして設計されています。関数型プログラミングの概念であるreduce関数に似た動作をします。
Reduxは2015年にダン・アブラモフとアンドリュー・クラークによって開発されました。[ 4 ]アブラモフは、 React Europe [ 6 ]でのホットリロードに関するカンファレンス講演[ 5 ]の準備中に、最初のRedux実装を書き始めました。アブラモフは次のように述べています。「私は、ロジックを変更できるFluxの概念実証を作ろうとしていました。そして、それはタイムトラベルを可能にし、コード変更時に将来のアクションを再適用できるようにしました。」[ 7 ]
アブラモフは、Fluxパターンとreduce関数の類似性に衝撃を受けました。「私はFluxを、時間の経過とともにreduce操作を行うものとして考えていました。ストアは、これらのアクションに応じて状態を蓄積します。これをさらに発展させようと考えました。Fluxストアがストアではなく、reducer関数だったらどうなるでしょうか?」[ 4 ]
アブラモフは、Flux実装Flummoxの作者であるアンドリュー・クラークに協力を求めた。クラークは、Reduxのツールエコシステムの構築、一貫性のあるAPIの開発、ミドルウェアやストアエンハンサーなどの拡張ポイントの実装など、様々な面で貢献したとアブラモフは考えている。[ 4 ]
2016年半ばまでに、アブラモフはReactチームに加わり、主なメンテナーの役割をマーク・エリクソンとティム・ドールに引き継ぎました。[ 8 ]
2019年2月、React 16.8リリースでフックuseReducerとして導入されました。Reduxと一貫性のあるAPIを提供し、開発者はコンポーネントの状態に対してローカルなRedux風のストアを作成できます。[ 9 ]
2019年10月には、標準のRedux APIをラップして拡張する一連のユーティリティ(やなど)を提供することで、Reduxロジックの記述を簡素化するためにRedux Toolkitが導入されましたconfigureStore。[ 10 ]createSlice