Redux est une bibliothèque JavaScript open source permettant de gérer et de centraliser l'état des applications . Elle est le plus souvent utilisée avec des bibliothèques telles que React ou Angular pour créer des interfaces utilisateur . Similaire à (et inspirée par) l'architecture Flux de Facebook , elle a été créée par Dan Abramov et Andrew Clark. Depuis mi-2016, les principaux mainteneurs sont Mark Erikson et Tim Dorr.
Description
Redux est une petite bibliothèque dotée d'une API simple et limitée conçue pour être un conteneur prévisible pour l'état de l'application. Elle fonctionne de manière similaire à une fonction de réduction , un concept de programmation fonctionnelle .
Histoire
Redux a été créé par Dan Abramov et Andrew Clark en 2015. Abramov a commencé à écrire la première implémentation de Redux alors qu'il préparait une conférence à React Europe sur le rechargement à chaud. Abramov remarque : « J'essayais de faire une preuve de concept de Flux où je pouvais changer la logique . Et cela me permettrait de voyager dans le temps. Et cela me permettrait de réappliquer les actions futures sur le changement de code. »
Abramov a été frappé par la similitude du modèle Flux avec une fonction réductrice. « Je pensais à Flux comme une opération de réduction au fil du temps... vos magasins, ils accumulent l'état en réponse à ces actions. Je pensais aller plus loin. Et si votre magasin de flux n'était pas un magasin mais une fonction de réduction ? »
Abramov a contacté Andrew Clark (auteur de l'implémentation Flux Flummox) en tant que collaborateur. Il attribue notamment à Clark le mérite d'avoir rendu possible l'écosystème d'outils Redux, d'avoir contribué à créer une API cohérente et d'avoir mis en œuvre des points d'extension tels que des intergiciels et des optimiseurs de magasins.
À la mi-2016, Abramov a rejoint l'équipe React et a transmis la responsabilité principale de la maintenance à Mark Erikson et Tim Dorr.
En février 2019, useReduceril a été introduit en tant que hook React dans la version 16.8. Il fournit une API compatible avec Redux, permettant aux développeurs de créer des magasins de type Redux locaux aux états des composants.