{"id":70134,"date":"2023-06-13T10:20:12","date_gmt":"2023-06-13T09:20:12","guid":{"rendered":"https:\/\/kinqsta.com\/it\/?p=70134&#038;post_type=knowledgebase&#038;preview_id=70134"},"modified":"2025-10-01T20:43:26","modified_gmt":"2025-10-01T19:43:26","slug":"usestate-react","status":"publish","type":"post","link":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/","title":{"rendered":"Primi Passi con l&#8217;Hook useState di React"},"content":{"rendered":"<p>React \u00e8 una popolare <a href=\"https:\/\/kinqsta.com\/it\/blog\/librerie-javascript\/\">libreria JavaScript<\/a> utilizzata per la creazione di interfacce utente. Offre a <a href=\"https:\/\/kinqsta.com\/it\/blog\/tipi-di-developer\/\">sviluppatrici e sviluppatori<\/a> un&#8217;ampia gamma di strumenti, tra cui gli hook, che permettono di creare applicazioni in modo pi\u00f9 semplice ed efficiente.<\/p>\n<p>Uno degli hook pi\u00f9 utilizzati \u00e8 <code>useState<\/code>, che permette di aggiungere uno stato ai componenti funzionali.<\/p>\n<p>In questo articolo offriremo un&#8217;analisi approfondita di <code>useState<\/code>, analizzandone impieghi e best practice.<\/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>Cos&#8217;\u00e8 l&#8217;hook useState?<\/h2>\n<p>Prima di addentrarci nelle specifiche di <code>useState<\/code>, definiamo innanzitutto gli hook e quali sono le differenze rispetto ai tradizionali componenti di classe.<\/p>\n<p>Un hook \u00e8 una funzione che permette di utilizzare lo stato e altre caratteristiche di <a href=\"https:\/\/kinqsta.com\/it\/blog\/react-js\/\">React<\/a> in componenti funzionali.<\/p>\n<p>A differenza dei componenti di classe, i componenti funzionali non possono memorizzare lo stato. Gli hook come <code>useState<\/code> risolvono questo problema permettendo di aggiungere lo stato ai componenti funzionali.<\/p>\n\n<h3>Il backgroung dell&#8217;hook useState<\/h3>\n<p>Prima dell&#8217;introduzione dell&#8217;hook <code>useState<\/code> in React 16.8, i componenti funzionali non erano in grado di conservare il proprio stato. Gli sviluppatori dovevano invece utilizzare componenti di classe o librerie esterne di gestione dello stato come Redux per gestire lo stato nelle applicazioni.<\/p>\n<p>Sebbene i componenti di classe e le librerie esterne di gestione dello stato siano ancora soluzioni valide, l&#8217;introduzione dell&#8217;hook <code>useState<\/code> ha reso molto pi\u00f9 semplice aggiungere lo stato ai componenti funzionali e ha semplificato <a href=\"https:\/\/kinqsta.com\/it\/blog\/api-rest-vs-api-web\/\">l&#8217;API<\/a> di React nel suo complesso.<\/p>\n<p>Con l&#8217;hook <code>useState<\/code> gli sviluppatori possono utilizzare i componenti funzionali nella maggior parte delle applicazioni, riducendo la quantit\u00e0 di codice boilerplate necessario e rendendo pi\u00f9 semplice la valutazione dello stato.<\/p>\n<h3>Elementi della sintassi useState<\/h3>\n<p>L&#8217;hook <code>useState<\/code> prende come argomento un valore di stato iniziale e restituisce un array contenente due elementi: il valore di stato corrente e una funzione che aggiorna il valore di stato.<\/p>\n<p>Ecco la sintassi:<\/p>\n<pre><code class=\"language-jsx\">const [state, setState] = useState(initialState);<\/code><\/pre>\n<ul>\n<li><code>state<\/code>: il valore corrente dello stato.<\/li>\n<li><code>setState<\/code>: una funzione che aggiorna il valore dello stato.<\/li>\n<li><code>initialState<\/code>: il valore iniziale della variabile di stato che si sta dichiarando. \u00c8 facoltativo. Se non viene fornito alcun valore (non \u00e8 consigliabile), questo viene automaticamente impostato su <code>undefined<\/code>.<\/li>\n<\/ul>\n<p>\u00c8 importante notare che, quando si utilizza l&#8217;hook <code>useState<\/code>, ogni volta che il valore dello stato cambia, React eseguir\u00e0 automaticamente un nuovo rendering del componente.<\/p>\n<h2>Come utilizzare l&#8217;hook useState<\/h2>\n<p>Per utilizzare <code>useState<\/code>, bisogna invocare la funzione e passarle un valore iniziale come argomento. La funzione restituisce un array contenente il valore dello stato corrente e una funzione per aggiornare lo stato.<\/p>\n<p>Ecco un esempio per la gestione di un semplice contatore:<\/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>In questo esempio, inizializziamo lo stato di <code>count<\/code> a 0 utilizzando <code>useState<\/code>. Poi renderizziamo il valore del conteggio corrente e un pulsante. Quando il pulsante viene cliccato, il valore del conteggio sar\u00e0 incrementato perch\u00e9 abbiamo aggiunto una funzione freccia con la funzione <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>Quando si usa l&#8217;hook <code>useState<\/code>, \u00e8 importante ricordare di importarlo dalla libreria React. Se ci si dimentica di importarlo, \u00e8 probabile che si verifichino degli errori. Ecco come importare useState:<\/p>\n<pre><code class=\"language-jsx\">import { useState } from 'react';<\/code><\/pre>\n<p>Includendo <code>useState<\/code> nella dichiarazione di importazione, stiamo dicendo a React che vogliamo utilizzare l&#8217;hook <code>useState<\/code> nel nostro componente.<\/p>\n<h2>Utilizzare diversi tipi di dati in React con useState<\/h2>\n<p>L&#8217;hook <code>useState<\/code> di React non si limita a gestire solo i tipi di dati stringa o numerici. \u00c8 possibile utilizzarlo per gestire gli stati di diversi tipi di dati, come array, oggetti e booleani.<\/p>\n<h3>Utilizzare gli array con l&#8217;hook useState<\/h3>\n<p>\u00c8 possibile utilizzare l&#8217;hook <code>useState<\/code> per gestire un array in React. Ad esempio, se abbiamo un array di frutti, possiamo inizializzare lo stato con l&#8217;array:<\/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>In questo esempio, utilizziamo <code>useState<\/code> per gestire un array chiamato <code>list<\/code>. Lo stato iniziale di <code>list<\/code> \u00e8 impostato su un array contenente tre elementi: <strong>apple<\/strong>, <strong>banana<\/strong> e <strong>orange<\/strong>.<\/p>\n<p>Abbiamo anche creato una funzione <code>addToList<\/code> che copia tutti gli elementi dell&#8217;array con l&#8217;operatore spread (<code>...<\/code>) e poi aggiunge un nuovo elemento <strong>grape<\/strong> all&#8217;array <code>list<\/code> ogni volta che viene cliccato il pulsante &#8220;Aggiungi elemento&#8221;.<\/p>\n<p>Questa volta non aggiorneremo lo stato in linea utilizzando una funzione freccia perch\u00e9 \u00e8 pi\u00f9 opportuno creare questa operazione come funzione indipendente e invocarla attraverso il metodo <code>onClick<\/code> aggiunto al pulsante <strong>Aggiungi elemento<\/strong>.<\/p>\n<h3>Utilizzare gli oggetti con useState<\/h3>\n<p>Possiamo utilizzare l&#8217;hook <code>useState<\/code> anche per gestire un oggetto in React. Ecco un esempio:<\/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>In questo esempio, utilizziamo <code>useState<\/code> per gestire un oggetto chiamato user. Lo stato iniziale di <code>user<\/code> \u00e8 impostato su un oggetto contenente due propriet\u00e0: <strong>name<\/strong> e <strong>age<\/strong>.<\/p>\n<p>Abbiamo anche una funzione <code>handleClick<\/code> che copia tutti i dati dell&#8217;oggetto con l&#8217;operatore di diffusione (<code>...<\/code>) e aumenta l&#8217;et\u00e0 dell&#8217;utente di <strong>1<\/strong> ogni volta che viene cliccato il pulsante <strong>Increase Age<\/strong>.<\/p>\n<p>\u00c8 importante sapere che \u00e8 possibile assegnare questo oggetto a una variabile e poi inizializzare la variabile. Questo \u00e8 utile quando si ha un oggetto o un array di grandi dimensioni e si vuole scrivere un codice di facile comprensione:<\/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>Utilizzare i booleani con useState<\/h3>\n<p>Si pu\u00f2 anche utilizzare l&#8217;hook <code>useState<\/code> per gestire un valore booleano. Ecco un esempio:<\/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>In questo esempio, utilizziamo <code>useState<\/code> per gestire un valore booleano chiamato <code>isOn<\/code>. Lo stato iniziale di <code>isOn<\/code> \u00e8 impostato su <code>false<\/code>. Abbiamo anche una funzione <code>toggleSwitch<\/code> che altera il valore di <code>isOn<\/code> ogni volta che viene cliccato il pulsante <strong>Toggle Switch<\/strong>.<\/p>\n<p>Questa funzione pu\u00f2 essere utilizzata per gestire l&#8217;alternanza delle modalit\u00e0 scura e chiara nei progetti.<\/p>\n<p>Prima di concludere, analizziamo un utilizzo pi\u00f9 avanzato dell&#8217;hook <code>useState<\/code> con i moduli.<\/p>\n<h2>L&#8217;hook useState e i moduli<\/h2>\n<p>Per gestire i dati dei moduli e gli input degli utenti in React, si utilizza lo stato. Questo viene utilizzato per tenere traccia dei valori correnti degli elementi del modulo. Tiene traccia di tutte le interazioni dell&#8217;utente, come la digitazione di un input di testo o la selezione di un&#8217;opzione da un menu a tendina, e infine aggiorna lo stato con il nuovo valore.<\/p>\n<p>Ecco un esempio di utilizzo di <code>useState<\/code> per la creazione di un semplice modulo:<\/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>In questo esempio, creiamo innanzitutto un oggetto per i dati che verranno raccolti con il modulo, con valori predefiniti per i campi <strong>firstName<\/strong>, <strong>lastName<\/strong> e <strong>email<\/strong>. Poi inizializziamo lo stato <code>formData<\/code> utilizzando <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>Definiamo poi una funzione <code>handleInputChange<\/code> che aggiorna lo stato <code>formData<\/code> ogni volta che un campo del modulo viene modificato.<\/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>Infine, definiamo una funzione <code>handleSubmit<\/code> che registra i dati correnti del modulo nella console quando il modulo viene inviato.<\/p>\n<pre><code class=\"language-jsx\">const handleSubmit = (event) =&gt; {\n    event.preventDefault();\n    console.log(formData);\n};<\/code><\/pre>\n<h2>Best practice di useState<\/h2>\n<p>Quando si utilizza l&#8217;hook <code>useState<\/code>, \u00e8 importante seguire le best practice per evitare errori e garantire prestazioni ottimali. Ecco alcuni suggerimenti:<\/p>\n<ul>\n<li><strong>Evitare stati annidati profondamente<\/strong>: invece di memorizzare dati di stato complessi in un unico oggetto, \u00e8 bene valutare la possibilit\u00e0 di suddividerli in parti pi\u00f9 piccole per semplificarne la gestione.<\/li>\n<li><strong>Utilizzare aggiornamenti funzionali<\/strong>: quando si aggiorna lo stato in base allo stato precedente, \u00e8 bene utilizzare gli aggiornamenti funzionali per evitare race condition e garantire che venga aggiornato lo stato corretto.<\/li>\n<li><strong>Evitare aggiornamenti eccessivi dello stato<\/strong>: l&#8217;aggiornamento dello stato pu\u00f2 essere dispendioso, quindi \u00e8 bene cercare di ridurre al minimo il numero di aggiornamenti. Si pu\u00f2 prendere in considerazione l&#8217;hook <code>useEffect<\/code> per raggruppare gli aggiornamenti e ottimizzare le prestazioni.<\/li>\n<li><strong>Evitare i re-rendering non necessari<\/strong>: React esegue un nuovo rendering di un componente ogni volta che lo stato o le propriet\u00e0 cambiano. Per evitare i re-rendering non necessari, si pu\u00f2 utilizzare la funzione memo.<\/li>\n<\/ul>\n\n<h2>Riepilogo<\/h2>\n<p>In questo articolo abbiamo analizzato l&#8217;hook <code>useState<\/code> e abbiamo visto come utilizzarlo per aggiungere lo stato ai componenti funzionali. Abbiamo anche visto come utilizzare <code>useState<\/code> con moduli, array e oggetti e suggerito alcune best practice per ottenere prestazioni ottimali. Seguendole, potrete creare applicazioni React efficienti, scalabili e facili da mantenere.<\/p>\n<p>State cercando la soluzione di hosting ideale per le vostre applicazioni React? Provate gratuitamente <a href=\"https:\/\/sevalla.com\/application-hosting\/\">l&#8217;Hosting di Applicazioni di Kinsta<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>React \u00e8 una popolare libreria JavaScript utilizzata per la creazione di interfacce utente. Offre a sviluppatrici e sviluppatori un&#8217;ampia gamma di strumenti, tra cui gli hook, &#8230;<\/p>\n","protected":false},"author":287,"featured_media":70135,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26212],"class_list":["post-70134","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>Primi Passi con l&#039;Hook useState di React - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"useState \u00e8 un potente hook di React! Questa guida per principianti spiega tutto ci\u00f2 che c&#039;\u00e8 da sapere sulla gestione dello stato nei componenti funzionali!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Primi Passi con l&#039;Hook useState di React\" \/>\n<meta property=\"og:description\" content=\"useState \u00e8 un potente hook di React! Questa guida per principianti spiega tutto ci\u00f2 che c&#039;\u00e8 da sapere sulla gestione dello stato nei componenti funzionali!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-13T09:20:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T19:43:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/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=\"useState \u00e8 un potente hook di React! Questa guida per principianti spiega tutto ci\u00f2 che c&#039;\u00e8 da sapere sulla gestione dello stato nei componenti funzionali!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinqsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Primi Passi con l&#8217;Hook useState di React\",\"datePublished\":\"2023-06-13T09:20:12+00:00\",\"dateModified\":\"2025-10-01T19:43:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/\"},\"wordCount\":1272,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/\",\"url\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/\",\"name\":\"Primi Passi con l'Hook useState di React - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg\",\"datePublished\":\"2023-06-13T09:20:12+00:00\",\"dateModified\":\"2025-10-01T19:43:26+00:00\",\"description\":\"useState \u00e8 un potente hook di React! Questa guida per principianti spiega tutto ci\u00f2 che c'\u00e8 da sapere sulla gestione dello stato nei componenti funzionali!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#primaryimage\",\"url\":\"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg\",\"contentUrl\":\"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg\",\"width\":1460,\"height\":730,\"caption\":\"Primi Passi con l'Hook useState in React\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinqsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"React\",\"item\":\"https:\/\/kinqsta.com\/it\/argomenti\/react\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Primi Passi con l&#8217;Hook useState di React\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinqsta.com\/it\/#website\",\"url\":\"https:\/\/kinqsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinqsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinqsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinqsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinqsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"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:\/\/kinqsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinqsta.com\/it\/#\/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:\/\/kinqsta.com\/it\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Primi Passi con l'Hook useState di React - Kinsta\u00ae","description":"useState \u00e8 un potente hook di React! Questa guida per principianti spiega tutto ci\u00f2 che c'\u00e8 da sapere sulla gestione dello stato nei componenti funzionali!","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:\/\/kinqsta.com\/it\/blog\/usestate-react\/","og_locale":"it_IT","og_type":"article","og_title":"Primi Passi con l'Hook useState di React","og_description":"useState \u00e8 un potente hook di React! Questa guida per principianti spiega tutto ci\u00f2 che c'\u00e8 da sapere sulla gestione dello stato nei componenti funzionali!","og_url":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2023-06-13T09:20:12+00:00","article_modified_time":"2025-10-01T19:43:26+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"useState \u00e8 un potente hook di React! Questa guida per principianti spiega tutto ci\u00f2 che c'\u00e8 da sapere sulla gestione dello stato nei componenti funzionali!","twitter_image":"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Joel Olawanle","Tempo di lettura stimato":"9 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#article","isPartOf":{"@id":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinqsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Primi Passi con l&#8217;Hook useState di React","datePublished":"2023-06-13T09:20:12+00:00","dateModified":"2025-10-01T19:43:26+00:00","mainEntityOfPage":{"@id":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/"},"wordCount":1272,"commentCount":0,"publisher":{"@id":"https:\/\/kinqsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/","url":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/","name":"Primi Passi con l'Hook useState di React - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinqsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#primaryimage"},"image":{"@id":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg","datePublished":"2023-06-13T09:20:12+00:00","dateModified":"2025-10-01T19:43:26+00:00","description":"useState \u00e8 un potente hook di React! Questa guida per principianti spiega tutto ci\u00f2 che c'\u00e8 da sapere sulla gestione dello stato nei componenti funzionali!","breadcrumb":{"@id":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinqsta.com\/it\/blog\/usestate-react\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#primaryimage","url":"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg","contentUrl":"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/06\/usestate-react.jpg","width":1460,"height":730,"caption":"Primi Passi con l'Hook useState in React"},{"@type":"BreadcrumbList","@id":"https:\/\/kinqsta.com\/it\/blog\/usestate-react\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinqsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"React","item":"https:\/\/kinqsta.com\/it\/argomenti\/react\/"},{"@type":"ListItem","position":3,"name":"Primi Passi con l&#8217;Hook useState di React"}]},{"@type":"WebSite","@id":"https:\/\/kinqsta.com\/it\/#website","url":"https:\/\/kinqsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinqsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinqsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinqsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinqsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinqsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinqsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinqsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","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:\/\/kinqsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinqsta.com\/it\/#\/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:\/\/kinqsta.com\/it\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/posts\/70134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/comments?post=70134"}],"version-history":[{"count":10,"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/posts\/70134\/revisions"}],"predecessor-version":[{"id":72812,"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/posts\/70134\/revisions\/72812"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinqsta.com\/it\/wp-json\/kinsta\/v1\/posts\/70134\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinqsta.com\/it\/wp-json\/kinsta\/v1\/posts\/70134\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinqsta.com\/it\/wp-json\/kinsta\/v1\/posts\/70134\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinqsta.com\/it\/wp-json\/kinsta\/v1\/posts\/70134\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinqsta.com\/it\/wp-json\/kinsta\/v1\/posts\/70134\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinqsta.com\/it\/wp-json\/kinsta\/v1\/posts\/70134\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinqsta.com\/it\/wp-json\/kinsta\/v1\/posts\/70134\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinqsta.com\/it\/wp-json\/kinsta\/v1\/posts\/70134\/translations\/es"},{"href":"https:\/\/kinqsta.com\/it\/wp-json\/kinsta\/v1\/posts\/70134\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/media\/70135"}],"wp:attachment":[{"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/media?parent=70134"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/tags?post=70134"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinqsta.com\/it\/wp-json\/wp\/v2\/topic?post=70134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}