Les Reducers en React
Les reducers
Un reducer c'est une fonction qui prend en paramètre une action et un state et qui selon le contenu de cette action va retourner un nouveau state.
Dans l'exemple ci-dessus, nous avons donc un reducer qui applique une opération mathématique différente sur le state en fonction de l'action qui lui est passée.
Les reducers sont un concept présent dans plein de projets JavaScript, avec ou sans React, c'est un mode d'organisation assez classique pour gérer les modifications d'un état quand celui-ci devient complexe.
Utiliser les reducers dans React
Dans React pour utiliser les reducers, nous allons utiliser le hook useReducer.
Il s'appelle de la façon suivante :
statec'est l'état de votre composantdispatchc'est une fonction qui permet d'envoyer une action au reducer pour modifier l'étatreducerc'est votre fonction reducerinitialStatec'est l'état initial de votre composant
Exemple d'usage d'un reducer
Imaginons que nous avons un compteur : nous voulons pouvoir ajouter ou soustraire 1 à notre compteur en fonction de quel bouton est cliqué :
counterReducer.js
Dans le fichier ci-dessus, nous avons notre reducer : il reçoit le state et l'objet action et en fonction du contenu de l'action, il renvoie un nouveau state.
Counter.jsx
Notre composant lui, initialise le useReducer et appelle la fonction dispatch pour indiquer au reducer ce qu'il doit faire.