Comment utiliser un réducteur avec l'API React Context ?

Dec 15, 2025

Salut! Si vous travaillez dans le développement React, vous avez probablement entendu parler de l'API et des réducteurs React Context. Les combiner peut changer la donne pour la gestion de l'état dans vos applications React. Et devinez quoi ? Je suis un fournisseur de réducteurs, j'ai donc quelques idées à partager sur la façon dont vous pouvez utiliser un réducteur avec l'API React Context.

Tout d’abord, examinons rapidement ce que sont l’API React Context et les réducteurs. L'API React Context est un moyen de partager des données entre des composants sans avoir à transmettre manuellement les accessoires à chaque niveau de l'arborescence des composants. C'est très utile lorsque vous disposez de données auxquelles plusieurs composants doivent accéder, comme le statut d'authentification de l'utilisateur ou les paramètres de thème.

D'un autre côté, un réducteur est une fonction pure qui prend l'état actuel et une action comme entrées et renvoie un nouvel état. C'est un concept clé dans Redux, mais vous pouvez également l'utiliser indépendamment dans React. Les réducteurs sont parfaits pour gérer des changements d’état complexes de manière prévisible.

Alors, pourquoi voudriez-vous utiliser un réducteur avec l’API React Context ? Eh bien, l'API Context est idéale pour partager des données, mais elle ne dispose pas de moyen intégré pour gérer les mises à jour d'état complexes. C'est là que les réducteurs entrent en jeu. En utilisant un réducteur avec l'API Context, vous pouvez disposer d'un endroit centralisé pour gérer les changements d'état et partager cet état dans votre application.

Commençons par mettre en place la structure de base. Tout d’abord, vous devrez créer un contexte. Dans React, vous pouvez le faire en utilisant lecréerContextfonction. Voici un exemple :

importer React, { createContext, useReducer } from'react'; // Crée un contexte const MyContext = createContext(); // Définir la fonction de réduction const réducteur = (state, action) => { switch (action.type) { case 'INCREMENT': return { count: state.count + 1 }; case 'DÉCRÉMENT' : return {count: state.count - 1 } ; par défaut : état de retour ; } } ; // Créer un composant fournisseur const MyProvider = ({ children }) => { const [state, dispatch] = useReducer(reducer, { count: 0 }); return ( <MyContext.Provider value={{ state, dispatch }}> {children} </MyContext.Provider> ); } ; exporter {MonContexte, MonProvider} ;

Dans cet exemple, nous créons d'abord un contexte appeléMonContexte. Ensuite, nous définissons une fonction de réduction qui peut gérer deux types d'actions :INCRÉMENTetDÉCRÉMENT. LeMon fournisseurLe composant utilise leutiliserRéducteurhook pour gérer l’état et la fonction de répartition. L'état et l'expédition sont ensuite transmis comme valeur auMonContexte.Provider.

Voyons maintenant comment utiliser ce contexte dans un composant. Supposons que vous disposiez d'un composant simple qui souhaite utiliser les actions d'état et de répartition. Voici comment procéder :

importer React, { useContext } from'react' ; importer { MyContext } depuis './yourContextFile' ; const MyComponent = () => { const { state, dispatch } = useContext(MyContext); return ( <div> <p>Count : {state.count}</p> <button onClick={() => dispatch({ type: 'INCREMENT' })}>Incrémentation</button> <button onClick={() => dispatch({ type: 'DECREMENT' })}>Décrémentation</button> </div> ); } ; exporter MyComponent par défaut ;

DansMonComposant, nous utilisons leutiliserContexthook pour accéder à la fonction d'état et de répartition à partir du contexte. Nous pouvons alors afficher l’état et envoyer des actions pour le mettre à jour.

L'un des avantages de l'utilisation d'un réducteur avec l'API React Context est qu'il rend votre code plus maintenable. Puisque tous les changements d’état sont gérés au même endroit (le réducteur), il est plus facile de comprendre comment l’état est mis à jour. De plus, comme l'état est partagé via le contexte, vous n'avez pas à vous soucier du forage d'accessoires.

Parlons maintenant de quelques cas d'utilisation réels. Si vous créez une application de commerce électronique, vous disposez peut-être d'un panier. L'état du panier peut être géré à l'aide d'un réducteur et partagé entre différents composants tels que la liste de produits, le résumé du panier et la page de paiement.

Jetons un coup d'œil à un exemple de réduction plus complexe pour un panier :

const cartReducer = (state, action) => { switch (action.type) { case 'ADD_TO_CART' : return { ...state, items : [...state.items, action.payload] } ; case 'REMOVE_FROM_CART' : return { ...state, items: state.items.filter(item => item.id!== action.payload.id) } ; case 'UPDATE_QUANTITY' : return { ...state, items: state.items.map(item => item.id === action.payload.id ? {...item, quantité: action.payload.quantity } : item ) }; par défaut : état de retour ; } } ;

Ce réducteur peut gérer l'ajout d'articles au panier, la suppression d'articles du panier et la mise à jour de la quantité d'articles dans le panier.

En tant que fournisseur de réducteurs, je propose une variété de réducteurs de haute qualité pour différents cas d'utilisation. Par exemple, si vous travaillez sur un projet nécessitant des matériaux à haute résistance, vous pourriez être intéressé par notreRéducteur Titane Gr7. Il est fabriqué à partir de titane de première qualité et peut résister à des conditions difficiles. Et si vous avez besoin d'un réducteur avec une résistance chimique spécifique, notreRéducteur de zirconiumpourrait être la solution idéale.

Si vous souhaitez implémenter un réducteur avec l'API React Context dans votre projet et avez besoin de réducteurs fiables, n'hésitez pas à nous contacter. Que vous soyez un développeur à petite échelle ou une entreprise à grande échelle, nous avons les solutions adaptées pour vous. Nous pouvons vous fournir des spécifications détaillées et une assistance pour garantir que vous tirez le meilleur parti de nos réducteurs.

Contactez-nous pour plus d’informations et pour démarrer le processus d’approvisionnement. Nous sommes là pour vous aider à créer de meilleures applications React avec les bons réducteurs.

Titanium Gr7 ReducerZirconium Reducer

Références :

  • Documentation officielle de React sur l'API Context
  • Réagissez à la documentation officielle sur le hook useReducer