Comment utiliser Recoil pour la gestion des états dans vos projets React
Si vous êtes un développeur React, vous avez probablement utilisé une bibliothèque pour gérer l état dans vos applications React. Et vous avez probablement entendu parler de Redux, la bibliothèque de
📺 Calculateur taille écran idéal
Distance recommandée selon la taille et résolution. Pour 4K, on peut s'asseoir 2× plus près qu'en HD.
Questions courantes
Qu’est-ce que Recoil et comment fonctionne-t-il ?
Recoil est une bibliothèque de gestion d’état pour React qui permet de gérer l’état de manière centralisée et déclarative. Elle utilise un modèle de données basé sur les atomes et les sélecteurs pour gérer l’état de l’application.
Quels sont les avantages de l’utilisation de Recoil par rapport à Redux ?
Recoil est plus léger et plus facile à utiliser que Redux, car il n’a pas besoin de configurer manuellement le magasin de données global. De plus, Recoil est plus flexible et permet de gérer l’état de manière plus déclarative.
Comment intégrer Recoil dans une application React existante ?
Il est possible d’intégrer Recoil dans une application React existante en installant la bibliothèque et en configurant les atomes et les sélecteurs pour gérer l’état de l’application.
Si vous êtes un développeur React, vous avez probablement utilisé une bibliothèque pour gérer l’état dans vos applications React. Et vous avez probablement entendu parler de Redux**, la** bibliothèque de gestion d’état pour React.
Pendant longtemps, Redux a été la seule solution fiable et la plus largement adoptée pour la gestion de l’état dans les applications React. Et Redux a prouvé ses cas d’utilisation dans les grandes applications.
Mais le principal problème auquel les développeurs étaient souvent confrontés avec Redux était l’expérience globale du développeur. Dans les premières versions de Redux, vous deviez configurer manuellement votre magasin de données global et connecter manuellement chaque composant pour le consommer et mettre à jour l’état global. En fait, les développeurs devaient consacrer beaucoup de temps et d’efforts à la mise en place et à l’utilisation de Redux dans leurs applications.
La gestion des états dans les applications React
La gestion des états est un aspect crucial dans les applications React, car elle permet de gérer les données et les interactions de l’utilisateur de manière efficace. Les bibliothèques de gestion d’état comme Recoil et Redux sont conçues pour faciliter la gestion des états dans les applications React.
Recoil est une solution de gestion d’état qui se concentre sur la simplicité et la flexibilité. Elle permet de gérer l’état de manière déclarative et centralisée, ce qui facilite la maintenance et la mise à jour de l’application.
En intégrant Recoil dans votre application React, vous pouvez améliorer la gestion des états et rendre votre application plus efficace et plus scalable. Découvrez comment améliorer la gestion de la relation client avec des formations en ligne.
Sur ce, je vous remercie beaucoup d’avoir pris le temps de lire cet article. Si vous l’avez trouvé intéressant, rejoignez-moi sur Twitter abdadeel_ où je partage du contenu intéressant sur le développement web.
Avant de commencer, je veux juste mentionner que tout le code de l’exemple de l’application todo est dans ce bac à sable. N’hésitez pas à le référencer et à le modifier.
Commençons par installer la bibliothèque. Si vous travaillez sur votre ordinateur local, vous pouvez installer Recoil en utilisant npm ou yarn.
`npm i recoil
// ou
yarn add recoil`

Comment ajouter le composant racine de Recoil ?
La première chose que vous devez faire est d’envelopper votre application entière avec le composant RecoilRoot fourni par recoil.
Puisque Recoil utilise une approche 100% basée sur les crochets, il est bon d’envelopper toute votre application avec le composant racine fourni par Recoil afin que vous puissiez accéder à l’état de votre application depuis n’importe quel composant.
Vous pouvez simplement faire cela en important et en ajoutant RecoilRoot dans votre index.js (fichier d’entrée). Voici à quoi ressemblera votre index.js une fois que vous l’aurez ajouté :
`import { StrictMode } de “react” ; import ReactDOM de “react-dom” ; import { RecoilRoot } from “recoil” ; import App de ”./App” ;
const rootElement = document.getElementById(“root”) ; ReactDOM.render(
, rootElement ) ;`

Comment créer un atome dans Recoil
Après cela, nous devons créer un **atome.**Un atome dans Recoil est simplement un morceau de mémoire isolé qui contient des données. Vous pouvez créer autant d’atomes que vous le souhaitez.
Par exemple, disons que vous créez une application de médias sociaux où les utilisateurs peuvent mettre en signet un certain message. Pour stocker les messages mis en signet par les utilisateurs, vous pouvez avoir un atome distinct contenant uniquement les données des signets.
Lorsque certaines données changent dans l’atome – par exemple, l’utilisateur met un article en signet – les composants souscrits à cet atome ou l’utilisant sont rendus à nouveau.
C’est ici que la partie performance de recoil entre en jeu. Recoil s’assurera que seuls les composants souscrits à cet atome spécifique sont rendus à nouveau.
La création d’un atome est extrêmement simple. Créez un fichier src/recoil/atom/todoAtom.js et ajoutez le code suivant :
`import { atom } de “recoil” ;
export const todoListAtom = atom({ clé : “todoListState”, default : [], }) ;`
Comment créer votre premier atome
Il vous suffit d’importer la fonction atom de recoil. Cette fonction prend un objet comme argument.
La première entrée de cet objet est key. C’est une chaîne unique qui représentera cet atome spécifique. default est l’état initial de cet atome. Et c’est tout. C’est tout ce que vous devez faire pour le configurer.
Veillez à exporter todoListAtom car nous l’utiliserons pour référencer cet atome.
Comment ajouter des données à un atome
Créons maintenant une entrée où l’utilisateur peut saisir son todo. Créez components/TodoItemCreator.js.
Dans ce composant, nous avons une entrée où l’utilisateur va taper et nous allons voir comment il est simple d’ajouter un nouveau todo dans l’atome. Plus tard, nous verrons comment tous les composants qui utilisent le même atome se mettent à jour pour afficher le nouveau todo ajouté. Vous pouvez être aussi créatif que vous le souhaitez dans le style de l’entrée.
Ici, je vais seulement montrer comment nous pouvons utiliser le hook useRecoilState (fourni par la bibliothèque recoil pour obtenir l’état actuel des données dans l’atome) et une fonction pratique pour mettre à jour l’état.
Si vous avez utilisé useState dans React, cela ressemblera assez à ce que vous avez l’habitude de voir dans l’état de votre composant local. Le hook useRecoilState prend un atome comme argument.
`import { useState } de “react” ; import { useRecoilState } de “recoil” ; import { todoListAtom } de ”../recoil/atoms/todoAtom” ; import { generateUID } de ”../utils/uuid” ;
export const TodoItemCreator = () => { const [inputValue, setInputValue] = useState("") ; const [_, setTodoList] = useRecoilState(todoListAtom) ;
const onChange = (event) => { setInputValue(event.target.value) ; } ;
const addTodoItem = () => { if (inputValue) { setTodoList((oldTodoList) => [ …oldTodoList, { id : generateUID(), text : inputValue, isComplete : false } ]) ; setInputValue("") ; } } ;
retour ( Ajouter une tâche ) ;
} ;Lorsque l’utilisateur saisit l’entrée et clique sur le boutonAdd Task, une fonction addTodoItemest appelée. Cette fonction appelle simplement la fonctionsetTodoList` donnée par le crochet.
Puisqu’il est recommandé de ne jamais mettre à jour votre état global directement, créez plutôt une copie superficielle des todos précédents et ajoutez-en un nouveau. Dans l’extrait de code ci-dessus, generateUID n’est qu’une fonction utilitaire qui renvoie un identifiant unique uuidv4 pour obtenir un identifiant unique aléatoire que nous utiliserons plus tard pour mettre à jour un simple todo à partir d’une liste de todos.
Comment consommer les données de l’Atom
Créons maintenant un composant pour afficher un todo dans une liste et permettre à l’utilisateur de mettre à jour, supprimer ou marquer les todos comme terminés. Créez src/components/TodoMain.js.
`import { useRecoilValue } from “recoil” ; import { TodoItemCreator } de ”./TodoItemCreator” ; import { TodoItem } de ”./TodoItem” ; import { todoListAtom } de ”./recoil/atoms/todoAtom” ; importez ”./todo.css” ;
export const TodoMain = () => { const todoList = useRecoilValue(todoListAtom) ;
retour (`
{todoList.length > 0 && (
{todoList.map((todoItem) => ( ))} )}
) ; } ;
useRecoilValue est un hook fourni par recoil qui retourne uniquement l’état actuel de la date dans l’atome. Nous allons utiliser ce hook pour récupérer tous les todos et les mapper pour les afficher à l’écran.
Comment mettre à jour les données dans Atom
TodoItem est un composant qui utilise le même hook useRecoilState et quelques fonctions d’aide pour trouver et mettre à jour l’état d’un todo spécifique.
`import { useRecoilState } de “recoil” ; import { todoListAtom } de ”../recoil/atoms/todoAtom” ;
export const TodoItem = ({ item }) => { const [todoList, setTodoList] = useRecoilState(todoListAtom) ; const index = todoList.findIndex((listItem) => listItem === item) ;
const editItemText = (event) => { const newList = replatItemAtIndex(todoList, index, { …item, texte : event.target.value }) ;
setTodoList(newList) ;
} ;
const toggleItemCompletion = () => { const newList = replatItemAtIndex(todoList, index, { …item, isComplete : !item.isComplete }) ;
setTodoList(newList) ;
} ;
const deleteItem = () => { const newList = removeItemAtIndex(todoList, index) ;
setTodoList(newList) ;
} ;
retour ( X ) ;
} ;
const replatItemAtIndex = (arr, index, newValue) => { return […arr.slice(0, index), newValue, …arr.slice(index + 1)] ; } ;
const removeItemAtIndex = (arr, index) => { return […arr.slice(0, index), …arr.slice(index + 1)] ; } ;` Et c’est tout. Avec deux hooks et une fonction, vous pouvez gérer tous les besoins de gestion d’état de vos applications React. La puissance de Recoil réside dans son API simple et conviviale pour les débutants et dans ses performances.
Au fil du temps, Redux s’est amélioré et fournit maintenant des solutions simples de plugins comme redux-toolkit. Mais maintenant, il existe des solutions de gestion d’état encore plus simples pour React, comme zustand, recoil et react-query, pour n’en citer que quelques-unes.
FAQ
Quelle est la différence entre Recoil et Zustand ?
Recoil et Zustand sont deux bibliothèques de gestion d’état pour React qui ont des approches différentes. Recoil se concentre sur la simplicité et la flexibilité, tandis que Zustand se concentre sur la performance et la scalabilité.
Comment utiliser Recoil avec d’autres bibliothèques de gestion d’état ?
Il est possible d’utiliser Recoil avec d’autres bibliothèques de gestion d’état comme Redux ou MobX, mais cela nécessite une configuration et une intégration soigneuses pour éviter les conflits et les problèmes de performances.
Quels sont les cas d’utilisation de Recoil ?
Recoil est adapté pour les applications React qui nécessitent une gestion d’état simple et flexible. Il est particulièrement utile pour les applications qui ont besoin de gérer des données en temps réel ou des interactions utilisateur complexes.
Comment déboguer les problèmes de Recoil ?
Il est possible de déboguer les problèmes de Recoil en utilisant les outils de débogage de React et en consultant la documentation de Recoil. Il est également possible de demander de l’aide sur les forums de discussion de la communauté React.
Quelle est la communauté autour de Recoil ?
La communauté autour de Recoil est active et en constante évolution. Il est possible de trouver des ressources et des exemples de code sur le site officiel de Recoil et sur les plateformes de développement comme GitHub.
À lire aussi sur le site
Questions fréquentes
Comment réussir utiliser recoil pour la gestion des états dans vos projets react ?
Si vous êtes un développeur React, vous avez probablement utilisé une bibliothèque pour gérer l état dans vos applications React. Et vous avez probablement entendu parler de Redux, la bibliothèque de
Quel est le matériel nécessaire pour utiliser recoil pour la gestion des états dans vos projets react ?
Le matériel dépend du contexte précis. Reportez-vous à la section dédiée dans cet article pour la liste détaillée et nos recommandations.
Combien de temps faut-il prévoir pour utiliser recoil pour la gestion des états dans vos projets react ?
Selon votre niveau et le contexte, comptez généralement entre 30 minutes et plusieurs heures. Les détails de durée sont précisés dans le guide.
Quelles sont les erreurs à éviter ?
Les erreurs les plus fréquentes sont détaillées dans cet article, avec les bonnes pratiques pour les éviter et obtenir un résultat satisfaisant.
À lire aussi
Comment utiliser PropTypes dans React
Les PropTypes sont une bonne défense de première ligne lorsqu il s agit de déboguer vos apps. Mais avant d entrer dans le détail des PropTypes, nous devons comprendre le concept de props. Lesprops son
formations en ligne incontournables pour exceller dans la gestion de la relation client
En 2026, la gestion de la relation client (GRC) se trouve au cœur des stratégies commerciales, façonnée par l’impact croissant du digital et la nécessité d’adapter l’expérience client à une concurrenc
Comment ne pas tomber dans le piège du licenciement pour inaptitude ?
Lorsqu un salarié est déclaré inapte par le médecin du travail, l employeur doit suivre une procédure précise selon le Code du travail pour éviter tout litige. Ce processus, bien que légalement encadr
Comment utiliser l aperçu des CSS dans Chrome Dev Tools
Si vous êtes un développeur web, vous appréciez probablement un site web bien conçu et attrayant. Il se peut qu un site Web vous propose un jeu de couleurs ou une police que vous souhaitez intégrer à