Volver al curso

React Fundamentals

leccion
8 / 13
beginner
10 horas
Estado con useState

Introduccion a useState

Lectura
15 min~2 min lectura

Estado: Datos que cambian

El estado (state) son datos que pueden cambiar durante la vida de un componente. Cuando el estado cambia, React re-renderiza el componente.

useState: El hook basico

import { useState } from 'react';

function Contador() {
  // useState retorna [valor, funcionParaCambiar]
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Contador: {count}</p>
      <button onClick={() => setCount(count + 1)}>
        Incrementar
      </button>
    </div>
  );
}

Anatomia de useState

const [estado, setEstado] = useState(valorInicial);

// estado: el valor actual
// setEstado: funcion para actualizar
// valorInicial: valor al montar el componente

Diferentes tipos de estado

// Numeros
const [count, setCount] = useState(0);

// Strings
const [nombre, setNombre] = useState('');

// Booleanos
const [isOpen, setIsOpen] = useState(false);

// Arrays
const [items, setItems] = useState([]);

// Objetos
const [user, setUser] = useState({ name: '', email: '' });

// null/undefined
const [data, setData] = useState(null);

Ejemplo: Toggle

function Toggle() {
  const [isOn, setIsOn] = useState(false);

  return (
    <button onClick={() => setIsOn(!isOn)}>
      {isOn ? 'ON' : 'OFF'}
    </button>
  );
}

Ejemplo: Input controlado

function FormularioNombre() {
  const [nombre, setNombre] = useState('');

  return (
    <div>
      <input
        value={nombre}
        onChange={(e) => setNombre(e.target.value)}
        placeholder="Tu nombre"
      />
      <p>Hola {nombre || 'desconocido'}!</p>
    </div>
  );
}
Nunca modifiques el estado directamente. Siempre usa la funcion setter (setCount, setNombre, etc).