{"id":69989,"date":"2023-06-13T10:20:10","date_gmt":"2023-06-13T09:20:10","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=69989&#038;post_type=knowledgebase&#038;preview_id=69989"},"modified":"2025-10-01T20:42:46","modified_gmt":"2025-10-01T19:42:46","slug":"usestate-react","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/","title":{"rendered":"D\u00e9marrer avec le crochet useState dans React"},"content":{"rendered":"<p>React est une <a href=\"https:\/\/kinsta.com\/fr\/blog\/bibliotheques-javascript\/\">biblioth\u00e8que JavaScript<\/a> populaire utilis\u00e9e pour la construction d&rsquo;interfaces utilisateur. Elle fournit aux <a href=\"https:\/\/kinsta.com\/fr\/blog\/types-de-developpeurs\/\">d\u00e9veloppeurs<\/a> un large \u00e9ventail d&rsquo;outils, dont les hooks, pour rendre la construction d&rsquo;applications plus facile et plus efficace.<\/p>\n<p>L&rsquo;un des hooks les plus utilis\u00e9s est <code>useState<\/code>, qui permet aux d\u00e9veloppeurs d&rsquo;ajouter un \u00e9tat aux composants fonctionnels.<\/p>\n<p>Dans cet article, nous allons examiner en profondeur <code>useState<\/code>, ses utilisations et les meilleures pratiques pour sa mise en \u0153uvre.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Qu&rsquo;est-ce que le hook useState ?<\/h2>\n<p>Avant de nous plonger dans les sp\u00e9cificit\u00e9s de <code>useState<\/code>, d\u00e9finissons d&rsquo;abord ce que sont les hooks et en quoi ils diff\u00e8rent des composants de classe traditionnels.<\/p>\n<p>Un hook est une fonction qui vous permet d&rsquo;utiliser l&rsquo;\u00e9tat et d&rsquo;autres fonctionnalit\u00e9s <a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-react-js\/\">React<\/a> dans des composants fonctionnels.<\/p>\n<p>Contrairement aux composants de classe, les composants fonctionnels n&rsquo;ont pas de moyen int\u00e9gr\u00e9 de stocker l&rsquo;\u00e9tat. Les hooks comme <code>useState<\/code> r\u00e9solvent ce probl\u00e8me en vous permettant d&rsquo;ajouter de l&rsquo;\u00e9tat aux composants fonctionnels.<\/p>\n\n<h3>Historique du hook useState<\/h3>\n<p>Avant l&rsquo;introduction du hook <code>useState<\/code> dans React 16.8, les composants fonctionnels n&rsquo;\u00e9taient pas en mesure de conserver leur propre \u00e9tat. Au lieu de cela, les d\u00e9veloppeurs devaient utiliser des composants de classe ou des biblioth\u00e8ques de gestion d&rsquo;\u00e9tat externes comme Redux pour g\u00e9rer l&rsquo;\u00e9tat dans leurs applications.<\/p>\n<p>Bien que les composants de classe et les biblioth\u00e8ques de gestion d&rsquo;\u00e9tat externes restent des options viables, l&rsquo;introduction du hook <code>useState<\/code> a permis aux d\u00e9veloppeurs d&rsquo;ajouter plus facilement de l&rsquo;\u00e9tat \u00e0 leurs composants fonctionnels et a simplifi\u00e9 <a href=\"https:\/\/kinsta.com\/fr\/blog\/rest-api-vs-web-api\/\">l&rsquo;API<\/a> React dans son ensemble.<\/p>\n<p>Gr\u00e2ce au hook <code>useState<\/code>, les d\u00e9veloppeurs peuvent d\u00e9sormais utiliser des composants fonctionnels pour la plupart des cas d&rsquo;utilisation, ce qui r\u00e9duit la quantit\u00e9 de code standard n\u00e9cessaire et facilite l&rsquo;\u00e9valuation de l&rsquo;\u00e9tat dans leurs applications.<\/p>\n<h3>Composants de la syntaxe useState<\/h3>\n<p>Le crochet <code>useState<\/code> prend une valeur d&rsquo;\u00e9tat initiale comme argument et renvoie un tableau contenant deux \u00e9l\u00e9ments : la valeur d&rsquo;\u00e9tat actuelle et une fonction qui met \u00e0 jour la valeur d&rsquo;\u00e9tat.<\/p>\n<p>Voici la syntaxe :<\/p>\n<pre><code class=\"language-jsx\">const [state, setState] = useState(initialState);<\/code><\/pre>\n<ul>\n<li><code>state<\/code> : La valeur de l&rsquo;\u00e9tat actuel.<\/li>\n<li><code>setState<\/code> : Une fonction qui met \u00e0 jour la valeur de l&rsquo;\u00e9tat.<\/li>\n<li><code>initialState<\/code> : La valeur initiale de la variable d&rsquo;\u00e9tat d\u00e9clar\u00e9e. Cette valeur est facultative. Si aucune valeur n&rsquo;est fournie (ce qui n&rsquo;est pas conseill\u00e9), elle est automatiquement fix\u00e9e \u00e0 <code>undefined<\/code>.<\/li>\n<\/ul>\n<p>Il est important de noter que lorsque vous utilisez le hook <code>useState<\/code>, React va automatiquement re-rendre votre composant \u00e0 chaque fois que la valeur de l&rsquo;\u00e9tat change.<\/p>\n<h2>Comment utiliser le hook useState<\/h2>\n<p>Pour mettre en \u0153uvre <code>useState<\/code>, appelez la fonction et passez une valeur initiale en tant qu&rsquo;argument. La fonction renvoie un tableau contenant la valeur de l&rsquo;\u00e9tat actuel et une fonction pour mettre \u00e0 jour l&rsquo;\u00e9tat.<\/p>\n<p>Voici un exemple d&rsquo;utilisation de <code>useState<\/code> pour g\u00e9rer un simple compteur :<\/p>\n<pre><code class=\"language-jsx\">import { useState } from 'react';\n\nfunction Counter() {\n  const [count, setCount] = useState(0);\n\n  return (\n    &lt;div&gt;\n      &lt;p&gt;You clicked {count} times&lt;\/p&gt;\n      &lt;button onClick={() =&gt; setCount(count + 1)}&gt;\n        Click me\n      &lt;\/button&gt;\n    &lt;\/div&gt;\n  );\n}\n\nexport default Counter;<\/code><\/pre>\n<p>Dans cet exemple, nous initialisons l&rsquo;\u00e9tat de <code>count<\/code> \u00e0 0 \u00e0 l&rsquo;aide du hook <code>useState<\/code>. Nous affichons ensuite la valeur actuelle du compteur et un bouton. Lorsque vous cliquez sur le bouton, la valeur du compteur est incr\u00e9ment\u00e9e car nous avons ajout\u00e9 une fonction de fl\u00e8che \u00e0 la fonction <code>setCount<\/code>.<\/p>\n<pre><code class=\"language-jsx\">&lt;button onClick={() =&gt; setCount(count + 1)}&gt;Click me&lt;\/button&gt;<\/code><\/pre>\n<p>Lorsque vous utilisez le hook <code>useState<\/code>, il est important de ne pas oublier de l&rsquo;importer depuis la biblioth\u00e8que React. Si vous oubliez de l&rsquo;importer, vous rencontrerez probablement des erreurs lorsque vous tenterez d&rsquo;utiliser le Hook. Voici comment importer useState :<\/p>\n<pre><code class=\"language-jsx\">import { useState } from 'react';<\/code><\/pre>\n<p>En incluant <code>useState<\/code> dans l&rsquo;instruction d&rsquo;importation, vous indiquez \u00e0 React que vous souhaitez utiliser le hook <code>useState<\/code> dans votre composant.<\/p>\n<h2>Utilisation de diff\u00e9rents types de donn\u00e9es avec le hook useState dans React<\/h2>\n<p>Le hook <code>useState<\/code> de React n&rsquo;est pas limit\u00e9 \u00e0 la gestion de types de donn\u00e9es num\u00e9riques ou de cha\u00eenes de caract\u00e8res. Vous pouvez \u00e9galement l&rsquo;utiliser pour g\u00e9rer les \u00e9tats de diff\u00e9rents types de donn\u00e9es, tels que les tableaux, les objets et les bool\u00e9ens.<\/p>\n<h3>Utilisation de tableaux avec le hook useState<\/h3>\n<p>Vous pouvez utiliser le hook <code>useState<\/code> pour g\u00e9rer un tableau dans React. Par exemple, si vous avez un tableau de fruits, vous pouvez initialiser votre \u00e9tat avec le tableau :<\/p>\n<pre><code class=\"language-jsx\">import { useState } from 'react';\n\nfunction App() {\n  const [list, setList] = useState(['apple', 'banana', 'orange']);\n\n  const addToList = () =&gt; {\n    const newItem = 'grape';\n    setList([...list, newItem]);\n  };\n\n  return (\n    &lt;div&gt;\n      &lt;ul&gt;\n        {list.map((item) =&gt; (\n          &lt;li key={item}&gt;{item}&lt;\/li&gt;\n        ))}\n      &lt;\/ul&gt;\n      &lt;button onClick={addToList}&gt;Add Item&lt;\/button&gt;\n    &lt;\/div&gt;\n  );\n}\n\nexport default App;<\/code><\/pre>\n<p>Dans cet exemple, nous utilisons <code>useState<\/code> pour g\u00e9rer un tableau nomm\u00e9 <code>list<\/code>. L&rsquo;\u00e9tat initial de <code>list<\/code> est un tableau contenant trois \u00e9l\u00e9ments &#8211; <strong>apple<\/strong>, <strong>banana<\/strong> et <strong>orange<\/strong>.<\/p>\n<p>Nous avons \u00e9galement cr\u00e9\u00e9 une fonction <code>addToList<\/code> qui copie tous les \u00e9l\u00e9ments du tableau \u00e0 l&rsquo;aide de l&rsquo;op\u00e9rateur de propagation (<code>...<\/code>), puis ajoute un nouvel \u00e9l\u00e9ment, le <strong>grape<\/strong>, au tableau <code>list<\/code> chaque fois que l&rsquo;on clique sur le bouton \u00ab Add item \u00bb.<\/p>\n<p>Cette fois, nous ne mettons pas \u00e0 jour l&rsquo;\u00e9tat en ligne \u00e0 l&rsquo;aide d&rsquo;une fonction arrow, car il est plus appropri\u00e9 de cr\u00e9er cette op\u00e9ration en tant que fonction autonome et de l&rsquo;appeler par le biais de la m\u00e9thode <code>onClick<\/code> ajout\u00e9e au bouton <strong>Add Item<\/strong>.<\/p>\n<h3>Utilisation d&rsquo;objets avec le hook useState<\/h3>\n<p>Vous pouvez \u00e9galement utiliser le hook <code>useState<\/code> pour g\u00e9rer un objet dans React. Voici un exemple :<\/p>\n<pre><code class=\"language-jsx\">import { useState } from 'react';\n\nfunction App() {\n  const [user, setUser] = useState({ name: 'John', age: 30 });\n\n  const handleClick = () =&gt; {\n    setUser({ ...user, age: user.age + 1 });\n  };\n\n  return (\n    &lt;div&gt;\n      &lt;p&gt;Name: {user.name}&lt;\/p&gt;\n      &lt;p&gt;Age: {user.age}&lt;\/p&gt;\n      &lt;button onClick={handleClick}&gt;Increase Age&lt;\/button&gt;\n    &lt;\/div&gt;\n  );\n}\n\nexport default App;<\/code><\/pre>\n<p>Dans cet exemple, nous utilisons <code>useState<\/code> pour g\u00e9rer un objet nomm\u00e9 user. L&rsquo;\u00e9tat initial de <code>user<\/code> est d\u00e9fini comme un objet contenant deux propri\u00e9t\u00e9s &#8211; <strong>name<\/strong> et <strong>age<\/strong>.<\/p>\n<p>Nous disposons \u00e9galement d&rsquo;une fonction <code>handleClick<\/code> qui copie toutes les donn\u00e9es de l&rsquo;objet \u00e0 l&rsquo;aide de l&rsquo;op\u00e9rateur d&rsquo;\u00e9talement (<code>...<\/code>) et qui augmente l&rsquo;\u00e2ge de l&rsquo;utilisateur de <strong>1<\/strong> chaque fois que l&rsquo;on clique sur le bouton <strong>Increase age<\/strong>.<\/p>\n<p>Il est important de savoir que vous pouvez assigner cet objet \u00e0 une variable et initialiser cette derni\u00e8re. C&rsquo;est utile lorsque vous avez un objet ou un tableau de grande taille et que vous souhaitez \u00e9crire un code facile \u00e0 comprendre :<\/p>\n<pre><code class=\"language-jsx\">import { useState } from 'react';\n\/\/ Declare data\nlet userData = {\n    name: 'John',\n    age: 30,\n};\n\nfunction App() {\n    const [user, setUser] = useState(userData);\n\n    const handleClick = () =&gt; {\n        setUser({ ...user, age: user.age + 1 });\n    };\n\n    return (\n        &lt;div&gt;\n            &lt;p&gt;Name: {user.name}&lt;\/p&gt;\n            &lt;p&gt;Age: {user.age}&lt;\/p&gt;\n            &lt;button onClick={handleClick}&gt;Increase Age&lt;\/button&gt;\n        &lt;\/div&gt;\n    );\n}\n\nexport default App;<\/code><\/pre>\n<h3>Utilisation de bool\u00e9ens avec le hook useState<\/h3>\n<p>Vous pouvez \u00e9galement utiliser le crochet <code>useState<\/code> pour g\u00e9rer une valeur bool\u00e9enne dans React. Voici un exemple :<\/p>\n<pre><code class=\"language-jsx\">import { useState } from 'react';\n\nfunction App() {\n  const [isOn, setIsOn] = useState(false);\n\n  const toggleSwitch = () =&gt; {\n    setIsOn(!isOn);\n  };\n\n  return (\n    &lt;div&gt;\n      &lt;p&gt;The switch is {isOn ? 'on' : 'off'}&lt;\/p&gt;\n      &lt;button onClick={toggleSwitch}&gt;Toggle Switch&lt;\/button&gt;\n    &lt;\/div&gt;\n  );\n}\n\nexport default App;<\/code><\/pre>\n<p>Dans cet exemple, nous utilisons <code>useState<\/code> pour g\u00e9rer une valeur bool\u00e9enne nomm\u00e9e <code>isOn<\/code>. L&rsquo;\u00e9tat initial de <code>isOn<\/code> est fix\u00e9 \u00e0 <code>false<\/code>. Nous avons \u00e9galement une fonction <code>toggleSwitch<\/code> qui fait basculer la valeur de <code>isOn<\/code> chaque fois que le bouton <strong>Toggle Switch<\/strong> est cliqu\u00e9.<\/p>\n<p>Cette fonction peut \u00eatre utilis\u00e9e pour g\u00e9rer le basculement des modes sombre et lumineux dans vos projets.<\/p>\n<p>Avant de terminer, explorons une utilisation plus avanc\u00e9e du hook <code>useState<\/code> avec les formulaires.<\/p>\n<h2>Le hook useState et les formulaires<\/h2>\n<p>Pour g\u00e9rer les donn\u00e9es des formulaires et les entr\u00e9es des utilisateurs dans React, vous utilisez state. Celui-ci est utilis\u00e9 pour garder une trace des valeurs actuelles des \u00e9l\u00e9ments du formulaire. Il garde la trace de toutes les interactions de l&rsquo;utilisateur, comme la saisie d&rsquo;un texte ou la s\u00e9lection d&rsquo;une option dans une liste d\u00e9roulante, et met finalement \u00e0 jour l&rsquo;\u00e9tat avec la nouvelle valeur.<\/p>\n<p>Voici un exemple d&rsquo;utilisation de <code>useState<\/code> pour cr\u00e9er un formulaire simple :<\/p>\n<pre><code class=\"language-jsx\">import { useState } from 'react';\n\nlet formStateData = {\n    firstName: '',\n    lastName: '',\n    email: '',\n};\n\nfunction Form() {\n    const [formData, setFormData] = useState(formStateData);\n\n    const handleInputChange = (event) =&gt; {\n        const { name, value } = event.target;\n        setFormData({ ...formData, [name]: value });\n    };\n\n    const handleSubmit = (event) =&gt; {\n        event.preventDefault();\n        console.log(formData);\n    };\n\n    return (\n        &lt;form onSubmit={handleSubmit}&gt;\n            &lt;input\n                type=\"text\"\n                name=\"firstName\"\n                value={formData.firstName}\n                onChange={handleInputChange}\n            \/&gt;\n            &lt;input\n                type=\"text\"\n                name=\"lastName\"\n                value={formData.lastName}\n                onChange={handleInputChange}\n            \/&gt;\n            &lt;input\n                type=\"email\"\n                name=\"email\"\n                value={formData.email}\n                onChange={handleInputChange}\n            \/&gt;\n            &lt;button type=\"submit\"&gt;Submit&lt;\/button&gt;\n        &lt;\/form&gt;\n    );\n}\n\nexport default Form;<\/code><\/pre>\n<p>Dans cet exemple, nous cr\u00e9ons d&rsquo;abord un objet pour les donn\u00e9es qui seront collect\u00e9es avec le formulaire, avec des valeurs par d\u00e9faut pour les champs <strong>FirstName<\/strong>, <strong>name<\/strong> et <strong>email<\/strong>. Nous initialisons ensuite l&rsquo;\u00e9tat <code>formData<\/code> \u00e0 l&rsquo;aide de <code>useState<\/code>.<\/p>\n<pre><code class=\"language-jsx\">let formStateData = {\n    firstName: '',\n    lastName: '',\n    email: '',\n};\n\nconst [formData, setFormData] = useState(formStateData);<\/code><\/pre>\n<p>Nous d\u00e9finissons ensuite une fonction <code>handleInputChange<\/code> qui met \u00e0 jour l&rsquo;\u00e9tat <code>formData<\/code> chaque fois qu&rsquo;un champ du formulaire est modifi\u00e9.<\/p>\n<pre><code class=\"language-jsx\">const handleInputChange = (event) =&gt; {\n    const { name, value } = event.target;\n    setFormData({ ...formData, [name]: value });\n};<\/code><\/pre>\n<p>Enfin, nous d\u00e9finissons une fonction <code>handleSubmit<\/code> qui enregistre les donn\u00e9es actuelles du formulaire dans la console lorsque le formulaire est soumis.<\/p>\n<pre><code class=\"language-jsx\">const handleSubmit = (event) =&gt; {\n    event.preventDefault();\n    console.log(formData);\n};<\/code><\/pre>\n<h2>Meilleures pratiques useState<\/h2>\n<p>Lorsque vous utilisez le hook <code>useState<\/code>, il est important de suivre les meilleures pratiques afin d&rsquo;\u00e9viter les erreurs courantes et de garantir des performances optimales. Voici quelques conseils \u00e0 garder \u00e0 l&rsquo;esprit :<\/p>\n<ul>\n<li><strong>\u00c9vitez les \u00e9tats profond\u00e9ment imbriqu\u00e9s <\/strong>: Au lieu de stocker des donn\u00e9es d&rsquo;\u00e9tat complexes dans un seul objet, envisagez de les diviser en petits morceaux pour en faciliter la gestion.<\/li>\n<li><strong>Utilisez des mises \u00e0 jour fonctionnelles <\/strong>: Lorsque vous mettez \u00e0 jour un \u00e9tat sur la base d&rsquo;un \u00e9tat pr\u00e9c\u00e9dent, utilisez des mises \u00e0 jour fonctionnelles pour \u00e9viter les conditions de course et vous assurer que l&rsquo;\u00e9tat correct est mis \u00e0 jour.<\/li>\n<li><strong>\u00c9vitez les mises \u00e0 jour d&rsquo;\u00e9tat excessives <\/strong>: La mise \u00e0 jour de l&rsquo;\u00e9tat peut \u00eatre co\u00fbteuse, essayez donc de minimiser le nombre de mises \u00e0 jour que vous effectuez. Envisagez d&rsquo;utiliser la fonction du hook <code>useEffect<\/code> pour regrouper les mises \u00e0 jour et optimiser les performances.<\/li>\n<li><strong>\u00c9vitez les re-renders inutiles <\/strong>: React rendra \u00e0 nouveau un composant chaque fois que son \u00e9tat ou ses accessoires changent. Pour \u00e9viter les rendus inutiles, utilisez la fonction memo.<\/li>\n<\/ul>\n\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Dans cet article, nous avons explor\u00e9 en profondeur le hook <code>useState<\/code> et appris \u00e0 l&rsquo;utiliser pour ajouter un \u00e9tat aux composants fonctionnels. Nous avons \u00e9galement abord\u00e9 l&rsquo;utilisation de <code>useState<\/code> avec des formulaires, des tableaux et des objets, ainsi que les meilleures pratiques pour des performances optimales. En suivant ces bonnes pratiques, vous pouvez vous assurer que vos applications React sont efficaces, \u00e9volutives et faciles \u00e0 maintenir.<\/p>\n<p>Vous cherchez la solution d&rsquo;h\u00e9bergement id\u00e9ale pour vos applications React ? Essayez gratuitement <a href=\"https:\/\/sevalla.com\/application-hosting\/\">l&rsquo;h\u00e9bergement d&rsquo;applications de Kinsta<\/a> !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>React est une biblioth\u00e8que JavaScript populaire utilis\u00e9e pour la construction d&rsquo;interfaces utilisateur. Elle fournit aux d\u00e9veloppeurs un large \u00e9ventail d&rsquo;outils, dont les hooks, pour rendre la &#8230;<\/p>\n","protected":false},"author":287,"featured_media":69990,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1004],"class_list":["post-69989","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-react"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>D\u00e9marrer avec le crochet useState dans React - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Donnez un coup de fouet \u00e0 votre application React avec le hook useState ! Notre guide adapt\u00e9 aux d\u00e9butants couvre tout ce que vous devez savoir sur la gestion de l&#039;\u00e9tat dans func !\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"D\u00e9marrer avec le crochet useState dans React\" \/>\n<meta property=\"og:description\" content=\"Donnez un coup de fouet \u00e0 votre application React avec le hook useState ! Notre guide adapt\u00e9 aux d\u00e9butants couvre tout ce que vous devez savoir sur la gestion de l&#039;\u00e9tat dans func !\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-13T09:20:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T19:42:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Donnez un coup de fouet \u00e0 votre application React avec le hook useState ! Notre guide adapt\u00e9 aux d\u00e9butants couvre tout ce que vous devez savoir sur la gestion de l&#039;\u00e9tat dans func !\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"D\u00e9marrer avec le crochet useState dans React\",\"datePublished\":\"2023-06-13T09:20:10+00:00\",\"dateModified\":\"2025-10-01T19:42:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/\"},\"wordCount\":1560,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/\",\"name\":\"D\u00e9marrer avec le crochet useState dans React - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg\",\"datePublished\":\"2023-06-13T09:20:10+00:00\",\"dateModified\":\"2025-10-01T19:42:46+00:00\",\"description\":\"Donnez un coup de fouet \u00e0 votre application React avec le hook useState ! Notre guide adapt\u00e9 aux d\u00e9butants couvre tout ce que vous devez savoir sur la gestion de l'\u00e9tat dans func !\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg\",\"width\":1460,\"height\":730,\"caption\":\"D\u00e9marrer avec le crochet useState dans React\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/react\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"D\u00e9marrer avec le crochet useState dans React\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"D\u00e9marrer avec le crochet useState dans React - Kinsta\u00ae","description":"Donnez un coup de fouet \u00e0 votre application React avec le hook useState ! Notre guide adapt\u00e9 aux d\u00e9butants couvre tout ce que vous devez savoir sur la gestion de l'\u00e9tat dans func !","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/","og_locale":"fr_FR","og_type":"article","og_title":"D\u00e9marrer avec le crochet useState dans React","og_description":"Donnez un coup de fouet \u00e0 votre application React avec le hook useState ! Notre guide adapt\u00e9 aux d\u00e9butants couvre tout ce que vous devez savoir sur la gestion de l'\u00e9tat dans func !","og_url":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2023-06-13T09:20:10+00:00","article_modified_time":"2025-10-01T19:42:46+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Donnez un coup de fouet \u00e0 votre application React avec le hook useState ! Notre guide adapt\u00e9 aux d\u00e9butants couvre tout ce que vous devez savoir sur la gestion de l'\u00e9tat dans func !","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Joel Olawanle","Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"D\u00e9marrer avec le crochet useState dans React","datePublished":"2023-06-13T09:20:10+00:00","dateModified":"2025-10-01T19:42:46+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/"},"wordCount":1560,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/","url":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/","name":"D\u00e9marrer avec le crochet useState dans React - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg","datePublished":"2023-06-13T09:20:10+00:00","dateModified":"2025-10-01T19:42:46+00:00","description":"Donnez un coup de fouet \u00e0 votre application React avec le hook useState ! Notre guide adapt\u00e9 aux d\u00e9butants couvre tout ce que vous devez savoir sur la gestion de l'\u00e9tat dans func !","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/usestate-react\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/06\/usestate-react.jpg","width":1460,"height":730,"caption":"D\u00e9marrer avec le crochet useState dans React"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/usestate-react\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"React","item":"https:\/\/kinsta.com\/fr\/sujets\/react\/"},{"@type":"ListItem","position":3,"name":"D\u00e9marrer avec le crochet useState dans React"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/fr\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/69989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=69989"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/69989\/revisions"}],"predecessor-version":[{"id":70081,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/69989\/revisions\/70081"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/69989\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/69989\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/69989\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/69989\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/69989\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/69989\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/69989\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/69989\/translations\/es"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/69989\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/69990"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=69989"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=69989"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=69989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}