Crear TODOs: React Context dentro de React Portals

Clase 27 de 34Curso de React.js

Resumen

En el mundo del desarrollo web, una correcta gestión de estados y contextos puede ser la diferencia entre una aplicación eficaz y una que no lo es tanto. Hoy te llevaremos a través del uso de useContext y la gestión del estado en una aplicación de tareas, puntualizando cómo integrar funcionalidades que enriquezcan la experiencia de usuario, asegurando una aplicación reactiva y eficiente que persiste datos de manera local.

¿Cómo integrar useContext en tu aplicación de tareas?

useContext es una herramienta esencial al momento de manejar estados globales en React. Nos permite acceder y modificar el estado desde cualquier componente sin la necesidad de prop drilling. Aquí te explicamos cómo hacerlo:

  • Primero, llama a useContext y pasa el contexto de tu aplicación. Esto se hace importando useContext de React y tu archivo de contexto.
  • Extrae las propiedades y funciones que necesitarás del contexto. Por ejemplo, si necesitas actualizar el estado del modal en tu aplicación, utiliza algo como setOpenModal del contexto.

¿Cuáles son las funciones imprescindibles en una aplicación de tareas?

Toda aplicación de tareas requiere un conjunto de funciones básicas para ser operativa:

  1. Añadir tareas (to-dos).
  2. Marcar tareas como completadas.
  3. Eliminar tareas.
  4. Filtrar o buscar tareas.

Adicionalmente, debes gestionar el estado del modal, tanto para abrirlo como para cerrarlo. Esto es para permitir al usuario interactuar con el formulario de añadir nuevas tareas.

¿Cómo se maneja un formulario con estados locales y globales?

La gestión de formularios es fundamental en la experiencia del usuario. Para ello, maneja un estado local para los inputs y un estado global para actualizar la lista de tareas:

  • Crear un estado local, como newTodoValue, que almacene temporalmente la entrada del usuario.
  • Este estado se actualizará con cada modificación en el campo de texto mediante una función onChange.
  • Al enviar el formulario, se debe tener una función que interactúe con el contexto global y actualice el listado de tareas con el newTodoValue.

¿Por qué separar la lógica de la interfaz?

Es buena práctica mantener la lógica de negocio alejada de la interfaz de usuario en tu código:

  • Separar la lógica ayuda a mantener tu código organizado y más fácil de entender y mantener.
  • Crea funciones como onSubmit y onCancel fuera del return de JSX para manejar los eventos del formulario y los botones, respectivamente.

¿Cómo implementar persistencia de datos con localStorage?

Para que las tareas permanezcan después de recargar la página, debes implementar persistencia de datos:

  • Utiliza el localStorage para guardar el estado de las tareas.
  • Crea una función dentro de tu contexto que maneje la actualización tanto del estado como del localStorage cuando se añada una nueva tarea.

¿Cómo preparar tu aplicación para el deploy?

Finalmente, antes de compartir tu aplicación con el mundo, debes asegurarte de que todo funciona correctamente:

  • Prueba todas las funcionalidades: agregar, completar, eliminar y filtrar tareas.
  • Asegúrate de que los cambios persisten incluso después de recargar la página.
  • Revisa que el modal tenga el estado inicial correcto y no se abra automáticamente al recargar.

Con estos pasos claves, refuerzas la funcionalidad y robustez de tu aplicación de tareas, mejorando significativamente la experiencia del usuario. Recuerda, aprender y aplicar nuevas funcionalidades es un camino contínuo de mejora y excelencia en el desarrollo web. ¡Manten esa curiosidad y pasión por aprender siempre activa!