Redux (JavaScriptライブラリ)
この項目「Redux (JavaScriptライブラリ)」は翻訳されたばかりのものです。不自然あるいは曖昧な表現などが含まれる可能性があり、このままでは読みづらいかもしれません。(原文:英語版 JamesIde 21:35, 1 May 2020) 修正、加筆に協力し、現在の表現をより自然な表現にして下さる方を求めています。ノートページや履歴も参照してください。(2020年8月) |
作者 | Dan Abramov and Andrew Clark |
---|---|
初版 | 2015年6月2日[1] |
最新版 |
4.0.5
/ 2019年12月23日[2] |
リポジトリ | |
プログラミング 言語 | JavaScript |
プラットフォーム | クロスプラットフォーム |
種別 | JavaScriptライブラリ |
ライセンス | MIT |
公式サイト |
redux |
Redux(リーダックス)は、アプリケーションの状態管理のためのオープンソースのJavaScriptライブラリである。ユーザーインターフェイスを構築するために、ReactやAngularなどのライブラリで最もよく使用される。FacebookのFluxアーキテクチャの影響を受けて、Dan AbramovとAndrew Clarkによって作成された。
概要
[編集]Reduxは、アプリケーションの状態を予測できるコンテナになるように設計された、シンプルで限定的なAPIを備えた小さなライブラリである。関数型プログラミングの概念であるreduce関数と同様に動作する。
関数型プログラミング言語Elmの影響を受けている[3]。
歴史
[編集]Reduxは、2015年にDan AbramovとAndrew Clarkによって作成された。Abramovは、React Europe[4]でのホットリロードに関するカンファレンストーク[5]の用意をしながら、最初のReduxの実装を開始した。Abramovは、「私はロジックが変更できるFluxのコンセプトを証明しようとした。そして、それは私にタイムトラベルをさせる。そして、それは私にコードの変更に対する未来のアクションを再適用することを可能にするだろう」と発言している[6]。
Abramovは、reduce関数とFluxパターンの類似性に感銘を受けた。「私はFluxを時間の経過に伴うreduce操作と考えていた... ストアは、これらの行動に反応して状態を蓄積する。これをさらに進めることを考えていた。Fluxストアがストアではなく、reduce関数だった場合はどうなるか?」[7]
Abramovは、Andrew Clark(Fluxの実装であるFlummoxの作者)に協力者として接触した。特に、彼はツールのReduxエコシステムを可能にし、ミドルウェアやストアエンハンサーなどの拡張ポイントを実装する一貫したAPIの作成を支援したことで、Clarkの功績を認めている[7]。
2019年2月、useReducerは16.8リリースでReactフックとして導入された。Reduxと一貫性のあるAPIを提供し、開発者がコンポーネントの状態にローカルなReduxのようなストアを作成できるようにする[8]。
脚注
[編集]- ^ Initial release tag
- ^ “Releases – ReactJS/Redux”. GitHub. 2020年8月24日閲覧。
- ^ “An Introduction To Redux”. Smashing Magazine. 2020年8月24日閲覧。
- ^ “ReactEurope 2015 - Live React: Hot Reloading with Time Travel”. ReactEurope. 2020年8月24日閲覧。
- ^ “Dan Abramov - Live React: Hot Reloading with Time Travel at react-europe 2015”. Youtube. 2020年8月24日閲覧。
- ^ Abramov. “Progression, Curiosity, and Burnout with Dan Abramov”. TylerMcGinnis.com. 7 April 2018閲覧。
- ^ a b Abramov. “The History of React and Flux with Dan Abramov”. Three Devs and a Maybe. 7 April 2018閲覧。
- ^ React v16.8: The One with Hooks