El hook useState és un dels hooks més fonamentals i utilitzats en React. Permet afegir estat a components funcionals, una característica que abans només estava disponible en components de classe. En aquesta secció, aprendrem com utilitzar useState per gestionar l'estat dins dels nostres components funcionals.
Què és useState?
useState és una funció que retorna un array amb dos elements:
- L'estat actual: El valor actual de l'estat.
- Una funció per actualitzar l'estat: Una funció que permet modificar l'estat.
Sintaxi
state: El valor actual de l'estat.setState: La funció que s'utilitza per actualitzar l'estat.initialState: El valor inicial de l'estat.
Exemple bàsic
Vegem un exemple bàsic d'un component que utilitza useState per gestionar un comptador.
Codi
import React, { useState } from 'react';
function Counter() {
// Declarem una variable d'estat anomenada "count" i la seva funció d'actualització "setCount"
const [count, setCount] = useState(0);
return (
<div>
<p>Has fet clic {count} vegades</p>
<button onClick={() => setCount(count + 1)}>
Fes clic
</button>
</div>
);
}
export default Counter;Explicació
- Importació de
useState: ImportemuseStatedes de React. - Declaració de l'estat: Utilitzem
useStateper declarar una variable d'estatcountinicialitzada a0i una funciósetCountper actualitzar aquest estat. - Renderització: Renderitzem un paràgraf que mostra el valor actual de
counti un botó que, quan es fa clic, incrementa el valor decounten 1.
Exercici pràctic
Objectiu
Crea un component que permeti a l'usuari introduir text en un camp d'entrada i mostri aquest text en temps real.
Instruccions
- Crea un nou component anomenat
TextInput. - Utilitza
useStateper gestionar l'estat del text introduït. - Renderitza un camp d'entrada i un paràgraf que mostri el text introduït.
Solució
import React, { useState } from 'react';
function TextInput() {
// Declarem una variable d'estat anomenada "text" i la seva funció d'actualització "setText"
const [text, setText] = useState('');
return (
<div>
<input
type="text"
value={text}
onChange={(e) => setText(e.target.value)}
placeholder="Escriu alguna cosa..."
/>
<p>Has escrit: {text}</p>
</div>
);
}
export default TextInput;Explicació
- Declaració de l'estat: Utilitzem
useStateper declarar una variable d'estattextinicialitzada a una cadena buida i una funciósetTextper actualitzar aquest estat. - Camp d'entrada: Renderitzem un camp d'entrada amb el valor lligat a
texti un controlador d'esdevenimentsonChangeque actualitzatextamb el valor introduït per l'usuari. - Paràgraf: Renderitzem un paràgraf que mostra el valor actual de
text.
Errors comuns
- No inicialitzar l'estat: Assegura't de proporcionar un valor inicial a
useState. - No utilitzar la funció d'actualització correctament: Recorda que
setStatereemplaça l'estat anterior amb el nou valor proporcionat.
Consells addicionals
-
Evita actualitzacions innecessàries: Si l'actualització de l'estat depèn del valor anterior, considera utilitzar la funció de callback de
setState.setCount(prevCount => prevCount + 1); -
Gestió de múltiples estats: Pots utilitzar múltiples crides a
useStateper gestionar diferents parts de l'estat dins del mateix component.
Resum
En aquesta secció, hem après com utilitzar el hook useState per afegir estat als components funcionals de React. Hem vist un exemple bàsic d'un comptador i hem creat un component pràctic que mostra text en temps real. Amb useState, podem gestionar l'estat de manera senzilla i eficient dins dels nostres components funcionals.
Curs de React
Mòdul 1: Introducció a React
- Què és React?
- Configuració de l'entorn de desenvolupament
- Hola Món en React
- JSX: Extensió de la sintaxi de JavaScript
Mòdul 2: Components de React
- Comprendre els components
- Components funcionals vs components de classe
- Props: Passar dades als components
- State: Gestionar l'estat del component
Mòdul 3: Treballar amb esdeveniments
- Gestionar esdeveniments en React
- Renderització condicional
- Llistes i claus
- Formularis i components controlats
Mòdul 4: Conceptes avançats de components
- Elevar l'estat
- Composició vs herència
- Mètodes del cicle de vida de React
- Hooks: Introducció i ús bàsic
Mòdul 5: Hooks de React
Mòdul 6: Enrutament en React
Mòdul 7: Gestió de l'estat
- Introducció a la gestió de l'estat
- API de context
- Redux: Introducció i configuració
- Redux: Accions i reductors
- Redux: Connexió amb React
Mòdul 8: Optimització del rendiment
- Tècniques d'optimització del rendiment de React
- Memorització amb React.memo
- Hooks useMemo i useCallback
- Divisió de codi i càrrega mandrosa
Mòdul 9: Proves en React
- Introducció a les proves
- Proves unitàries amb Jest
- Proves de components amb React Testing Library
- Proves de punta a punta amb Cypress
Mòdul 10: Temes avançats
- Renderització del costat del servidor (SSR) amb Next.js
- Generació de llocs estàtics (SSG) amb Next.js
- TypeScript amb React
- React Native: Construir aplicacions mòbils
