Patrones de renderizado y composición

1

Actualización de Herramientas de Desarrollo con React 2023

2

Render Props y Composición en React: Ventajas y Desventajas

3

Control de Props en React: Comunicación entre Componentes Padres e Hijos

4

Patrón Compound Components en React: Creación de un Componente de Tabs

5

Componentes de Orden Superior vs Hooks en React: Comparación Práctica

6

Uso de Custom Hooks en React para Reemplazar Higher-Order Components

7

Patrón de Diseño Container-Presenter: Separación de Lógica y Presentación

8

Componentes Controlados y No Controlados en Formularios React

Navegación con React Router

9

Single Page Application vs Server Side Rendering con React Router

10

Enrutamiento Dinámico y Navegación Programática en React Router

11

Rutas Anidadas y Lazy Loading en React con React Router Dom

12

Rutas Protegidas y Redirecciones en React con Autenticación

Manejo del estado en React

13

Estado Global en React: Uso de Context y Provider para Notificaciones

14

Creación de Notificaciones con React Context y Custom Hooks

15

Gestión de Estado Complejo con useReducer en React

16

Creación de Reducers y Mapeo de Emojis en TypeScript

17

"Creación de Emoji Todo List con useReducer en React"

18

Flujo de Comunicación en Redux: Estado Global y Acciones

19

Creación de Reducer para Manejo de Emojis en Lista de Tareas

20

Creación de un Todo List con React Redux y Reducers

21

Manejo de Estado Global con Sustand en Aplicaciones React

22

Creación de un ToDo List con Emojis usando React y Sustand

23

Máquinas de Estado en Desarrollo Web: Configuración y Uso Práctico

24

Configuración de Máquina de Estados: Crear y Gestionar Vistas y Pasos

25

Creación de un Componente Wizard con Estados Locales en React

26

Visualización de Máquinas de Estado con XState

Comunicación con servidor y data fetching

27

Consumo de APIs con TankstackQuery y React TypeScript

28

Implementación de Code Splitting y Manejo de Errores en React

29

Paginación Asíncrona con Concurrent Mode en React

30

Paginación de Cursos con React y TanStack Query

Sigue avanzando con tus conocimientos de React

31

Optimización de Componentes en React con TypeScript

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de React Avanzado

Curso de React Avanzado

Estefany Aguilar

Estefany Aguilar

Manejo de Estado Global con Sustand en Aplicaciones React

21/31
Recursos

¿Qué es Sustand y por qué es relevante para el manejo del estado global en aplicaciones?

Si alguna vez te has sentido abrumado por la complejidad de Redux, te alegrará saber que hay una librería que facilita el manejo del estado global de tus aplicaciones: Sustand. Esta librería ofrece una forma sencilla de gestionar el estado, lo que la hace ideal para proyectos de pequeña y mediana escala. A diferencia de Redux, Sustand no requiere un flujo complejo de comunicación entre el estado, los componentes y las acciones. En cambio, se centra en un estado inicial y un hook que te permite modificarlo.

¿Cómo empezar con Sustand?

Para poner en marcha un proyecto con Sustand, el primer paso es la instalación de la librería. Aquí te mostramos los pasos básicos que puedes seguir para crear una aplicación con Sustand:

  1. Instalación inicial: Empieza creando tu proyecto, por ejemplo, puedes usar npm create vite y llamar a tu aplicación my-read-sustand-app. Luego, selecciona React TypeScript como plantilla.
  2. Instalar Sustand: Una vez que tengas tu proyecto configurado, instala Sustand usando el comando de instalación proporcionado en la documentación oficial.
  3. Configurar el Store: Ve a la carpeta src y crea un directorio llamado store. Allí, crearás un archivo useTodoStore.ts donde definirás tus tipos y funciones necesarias para manejar el estado.

¿Cómo se crea un Store y qué tipos se definen?

Para configurar el Store, importa create de Sustand y define los tipos necesarios para tu aplicación. En el ejemplo de una lista de tareas (todo list), necesitarás un tipo para "todo" y uno para el "store". Aquí te muestro cómo hacerlo:

import create from 'zustand';

type Todo = {
    id: number;
    text: string;
};

type TodoStore = {
    todos: Todo[];
    addTodo: (text: string) => void;
    removeTodo: (id: number) => void;
};

Una vez definidos los tipos, usa create para inicializar un Store que contendrá un array para las tareas (todos) y funciones para agregar y eliminar tareas.

¿Cómo usar funciones como addTodo y removeTodo en Sustand?

Dentro del Store, definirás funciones que permitan modificar el estado. La función addTodo añade nuevas tareas, mientras que removeTodo elimina tareas según su ID.

const useTodoStore = create<TodoStore>((set) => ({
    todos: [],
    addTodo: (text) => set(state => ({
        todos: [...state.todos, { id: state.todos.length + 1, text }]
    })),
    removeTodo: (id) => set(state => ({
        todos: state.todos.filter(todo => todo.id !== id)
    }))
}));

Ventajas de usar Sustand

La simplicidad es la clave del éxito de Sustand. Al eliminar la necesidad de un flujo complejo, te permite centrarte en lo esencial: definir el estado inicial y sus modificadores de una manera clara y concisa. Esto te ahorra tiempo y esfuerzo, lo que es especialmente útil si trabajas en aplicaciones que no requieren la robustez de Redux.

Consejos y recomendaciones para trabajar con Sustand

  • Utiliza hooks personalizados: Crea hooks específicos para acceder y manipular el store desde tus componentes. Esto mantendrá tu código limpio y organizado.
  • Aprovecha los tipos de TypeScript: Definir tipos claros aumenta la legibilidad de tu código y reduce errores.
  • Revisa la documentación oficial: Sustand se encuentra en constante evolución, por lo que estar al tanto de sus actualizaciones es vital.

Anímate a explorar y seguir aprendiendo sobre Sustand. Con práctica y experimentación, puedes dominar el manejo de estados en tus aplicaciones de manera más eficiente. Recuerda que cada herramienta tiene su contexto y alcance, y Sustand podría ser tu mejor aliado en proyectos de recursos reducidos o medianos.

Aportes 2

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Zustand ofrece varias ventajas y desventajas. **Ventajas:** - **Simplicidad**: La API es más sencilla que Redux, facilitando la gestión del estado. - **Desempeño**: Optimizado para aplicaciones medianas y pequeñas, con un enfoque en la eficiencia. - **Minimalismo**: No requiere boilerplate extenso, haciendo que la implementación sea más rápida. **Desventajas:** - **Escalabilidad**: Puede no ser ideal para aplicaciones muy grandes con estados complejos. - **Comunidad**: Menos soporte y recursos en comparación con Redux. **Uso recomendado**: Ideal para proyectos pequeños y medianos donde se busca agilidad en la gestión del estado. No recomendable para aplicaciones grandes que requieren una estructura de estado más robusta.
**Resumen esquemático sobre Zustand:** - **¿Para qué sirve?** - Manejo del estado global en aplicaciones React de manera simple y eficiente. - **¿Cómo funciona?** - Se crea un "store" utilizando `create` de Zustand, que contiene el estado y funciones para modificarlo. - Los componentes acceden y modifican el estado a través de hooks personalizados. - **Componentes del flujo de trabajo:** 1. **Store**: Contiene el estado inicial y funciones para modificarlo. 2. **Hook**: Permite a los componentes acceder y modificar el estado del store. 3. **Componente React**: Usa el hook para interactuar con el estado y renderizar la UI. - **Documentación oficial**: [Zustand Documentation](https://github.com/pmndrs/zustand) Este esquema te ayudará a entender rápidamente cómo implementar Zustand en tus aplicaciones React.