Content deleted Content added
Thunder491 (talk | contribs) Thunder491 moved page Redux (JavaScript library) to Redux (software): WP:QUALIFIER Tag: New redirect |
mNo edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 1:
{{short description|JavaScript state container software library}}
{{Infobox software
| name = Redux
| logo = Redux Logo.png
| author = Dan Abramov, Andrew Clark
| released = {{Start date and age|2015|06|02}}<ref name="githubreleasetag">[https://github.com/reduxjs/redux/releases/tag/v0.2.0 Initial release tag]</ref>
| latest release version = 5.0.1
| latest release date = {{Start date and age|2023|12|23}}<ref name="ghrelease">{{cite web |url=https://github.com/reduxjs/redux/releases |title=Releases – ReactJS/Redux |website=[[GitHub]]}}</ref><!-- DO NOT CHANGE THIS REFERENCE: the GitHub release page can remain as a static reference for all foreseeable releases-->
| programming language = [[TypeScript]]
| platform = [[Cross-platform software]]
| genre = [[JavaScript library]]
| license = [[MIT License]]
| website = {{URL|redux.js.org}}
}}
'''Redux''' is an [[open-source software|open-source]] [[JavaScript library]] for managing and centralizing application [[State (computer science)|state]]. It is most commonly used with libraries such as [[React (web framework)|React]] or [[Angular (web framework)|Angular]] for building [[user interface]]s. Similar to (and inspired by) Facebook's [[React (JavaScript library)#Unidirectional_data_flow|Flux architecture]], it was created by Dan Abramov and Andrew Clark.
Since mid-2016, the primary maintainers are Mark Erikson and Tim Dorr.
==Description==
Redux is a small library with a simple, limited API designed to be a predictable container for application state. It operates in a fashion similar to a [[Fold_(higher-order_function)|reducing function]], a [[functional programming]] concept.
== History ==
Redux was created by Dan Abramov and Andrew Clark in 2015.<ref name="abramov">{{cite web|last1=Abramov|first1=Dan|title=The History of React and Flux with Dan Abramov|url=http://threedevsandamaybe.com/the-history-of-react-and-flux-with-dan-abramov/|website=Three Devs and a Maybe|accessdate=7 April 2018}}</ref> Abramov began writing the first Redux implementation while preparing for a conference talk<ref>{{cite web | website=Youtube | title=Dan Abramov - Live React: Hot Reloading with Time Travel at react-europe 2015 | url=https://www.youtube.com/watch?v=xsSnOQynTHs}}</ref> at React Europe<ref>{{cite web | website=ReactEurope | title=ReactEurope 2015 - Live React: Hot Reloading with Time Travel | url=https://2015.react-europe.org/#reloading-anchor | access-date=2025-08-26 | archive-date=2019-01-12 | archive-url=https://web.archive.org/web/20190112023332/https://2015.react-europe.org/#reloading-anchor | url-status=dead }}</ref> on hot reloading. Abramov remarks, "I was trying to make a proof of concept of Flux where I could change the logic. And it would let me time travel. And it would let me reapply the future actions on the code change."<ref>{{cite web|last1=Abramov|first1=Dan|title=Progression, Curiosity, and Burnout with Dan Abramov|url=https://tylermcginnis.com/podcast/dan-abramov/|website=TylerMcGinnis.com|accessdate=7 April 2018}}</ref>
Abramov was struck by the similarity of the Flux pattern with a reducing function. "I was thinking about Flux as a reduce operation over time... your stores, they accumulate state in response to these actions. I was thinking of taking this further. What if your Flux store was not a store but a reducer function?"<ref name="abramov" />
Abramov reached out to Andrew Clark (author of the Flux implementation Flummox) as a collaborator. Among other things, he credits Clark with making the Redux ecosystem of tools possible, helping to come up with a coherent [[Application programming interface|API]], implementing extension points such as [[middleware]] and store enhancers.<ref name="abramov" />
By mid 2016, Abramov had joined the React team and passed the primary maintainership on to Mark Erikson and Tim Dorr.<ref>[https://blog.isquaredsoftware.com/2018/11/react-redux-history-implementation/#v5-x Idiomatic Redux: The History and Implementation of React-Redux]</ref>
In February 2019, <code>useReducer</code> was introduced as a [[React (software)#React Hooks|React hook]] in the 16.8 release. It provides an API that is consistent with Redux, enabling developers to create Redux-like stores that are local to component states.<ref>[https://reactjs.org/blog/2019/02/06/react-v16.8.0.html#react-1 React v16.8: The One with Hooks]</ref>
In October 2019, Redux Toolkit was introduced to simplify writing Redux logic by providing a set of utilities (such as <code>configureStore</code> and <code>createSlice</code>) that wrap and extend the standard Redux API.<ref>{{cite web |last1=Erikson |first1=Mark |title=Idiomatic Redux: Redux Toolkit 1.0 |url=https://blog.isquaredsoftware.com/2019/10/redux-toolkit-1.0/ |website=Mark's Dev Blog |access-date=9 August 2025 |date=23 October 2019}}</ref>
==See also==
{{Portal|Free and open-source software}}
* [[Unidirectional data flow]]
* [[Single source of truth]]
==References==
{{Reflist}}
==External links=
* {{Official website|https://redux.js.org/}}
* {{GitHub|reduxjs/redux}}
[[Category:JavaScript libraries]]
[[Category:2015 software]]
[[Category:Software using the MIT license]]
|