CodeAventura
React
▸Estado: componentes que recuerdan▸Estado con diferentes tipos de datos

Misión

●localhost:5173
14 / 21Estado con diferentes tipos de datos
Anterior

Estado con diferentes tipos de datos

Más allá de los números

useState no se limita a números. Puedes guardar cualquier tipo de dato: strings, booleanos, arrays, objetos... Pero con arrays y objetos hay una regla crítica que debes dominar.

Estado con booleanos

Los booleanos son perfectos para toggles: mostrar/ocultar, activar/desactivar, expandir/colapsar:

!isVisible invierte el valor: si era true, pasa a false, y viceversa.

Estado con strings

Ideal para campos de texto:

La regla de la inmutabilidad

Aquí viene lo más importante de esta lección. Con arrays y objetos, NUNCA debes mutar el estado directamente. Siempre debes crear una copia nueva.

¿Por qué? Porque React compara la referencia anterior con la nueva para decidir si re-renderizar. Si mutas el mismo objeto, la referencia no cambia y React piensa que nada cambió.

Estado con arrays

Agregar un elemento

Eliminar un elemento

Modificar un elemento

Estado con objetos

El spread ...user copia todas las propiedades, y luego name: 'Luis' sobrescribe solo esa.

Estado con arrays de objetos

Aquí es donde se combina todo. Imagina una lista de tareas:

Resumen de operaciones inmutables

OperaciónMutar ❌Inmutable ✅
Agregararr.push(x)[...arr, x]
Eliminararr.splice(i, 1)arr.filter(...)
Modificararr[i] = xarr.map(...)
Actualizar objetoobj.key = x{...obj, key: x}

Tu desafío 🚀

Construye una lista de tareas donde puedas:

  1. Agregar tareas con el input y el botón (usa spread: [...todos, nueva])
  2. Eliminar tareas (usa .filter())
  3. Marcar como completadas (usa .map() y spread)

La inmutabilidad puede parecer engorrosa al principio, pero es la que hace que React sea predecible y rápido. Una vez que la domines, será como respirar.