¿Cuándo usar useState vs useReducer? Mi regla mental

por Pilar Vidal Castro··51 votos

Despues de años peleandome con esto, mi regla simple:

  • useState cuando el estado es un valor simple o cuando las actualizaciones son independientes
  • useReducer cuando el estado es un objeto complejo, cuando las actualizaciones dependen del estado anterior, o cuando tienes mas de 3-4 useState relacionados

En la practica: si te encuentras haciendo setUser({ ...user, name: newName }) en mas de un sitio, cambia a useReducer.

¿Alguien tiene una regla mejor?