Filtrado de Búsquedas en URL con React Router
Clase 26 de 30 • Curso de React.js: Navegación con React Router
Contenido del curso
- 4

Instalación de React Router DOM 6 en un proyecto React
11:18 - 5

Uso de Hash Router en Aplicaciones Web con React Router DOM
07:26 - 6

Creación de Rutas Dinámicas con React Router DOM 6
10:41 - 7

Navegación en React Router: Uso de Link y NavLink
13:18 - 8

Rutas dinámicas con React Router DOM y useParams
15:36 - 9

Uso de useNavigate en React Router DOM para navegación dinámica
08:57 - 10

Uso de Outlet y Nested Routes en React Router DOM 6
06:56
- 11

Autenticación y Autorización en Apps con React Router y Hooks
23:48 - 12

Control de Acceso en Menú con Autenticación React
09:50 - 13

Protección de Rutas con React Router y Hooks
13:46 - 14

Roles y permisos en aplicaciones web: Autenticación y autorización
11:57 - 15

Retos avanzados en React: manejo de estado y composición de componentes
08:21 - 16

Mejorando la Redirección Post-Login en Aplicaciones Web
03:42 - 17

Roles y Permisos Avanzados en React Router v6
04:57
- 18

Migración de Todo Machine a React Router 6
11:33 - 19

Organización de carpetas y rutas en React con React Router DOM 6
18:40 - 20

Maquetación de Botón Editar en Lista de Tareas con React
12:19 - 21

Generación de IDs únicos para gestionar tareas en React
15:23 - 22

Migración de modales a rutas en React: implementación práctica
17:37 - 23

Editar ToDos en React con Custom Hook y URL Parameters
14:03 - 24

Mejora de la Experiencia del Usuario al Editar To Do's en React
21:55 - 25

Implementación de React Router en Proyectos Legacy
11:07
¿Qué reto nos propone con React Router?
React Router es una herramienta poderosa para manejar la navegación en aplicaciones React. En esta clase, enfrentamos un interesante reto que consiste en mejorar y personalizar la experiencia de búsqueda de una aplicación ya existente. La meta es que aquello que escribamos en la barra de búsqueda se refleje directamente en la URL, y que este cambio también sea funcional al revés: que al modificar la URL se actualice el contenido automáticamente. Este tipo de funcionalidad es fundamental para replicar experiencias de usuario intuitivas y efectivas, comunes en plataformas como Platzi y YouTube.
¿Cuál es el problema actual?
-
Filtro de búsqueda: Actualmente, la aplicación permite filtrar elementos en función de lo que se escribe en una barra de búsqueda. Por ejemplo, al escribir "cortar", aparecen solo los elementos que coinciden con ese criterio.
-
URL estática: La URL no refleja los criterios de búsqueda realizados. Sin importar lo que escribas en la barra de búsqueda, la URL permanece igual.
-
Búsqueda basada en la URL: Si intentamos acceder a una URL que debería mostrar un resultado basado en un término de búsqueda (por ejemplo, "search=Patito"), la página devuelve un estado de "not found" o no encontrado, en lugar de mostrar los elementos filtrados relativos a "Patito".
¿Cómo solucionarlo?
Para abordar este reto, la clave está en hacer dinámicas tanto la URL como la barra de búsqueda. Esto implica lo siguiente:
-
Actualización de la URL al buscar:
- Actualiza la URL para reflejar el término de búsqueda en forma de hash o query string.
- Utiliza
location.hasholocation.searchpara construir la URL dinámica.
-
Lectura del término de búsqueda desde la URL:
- Al cargar la aplicación, verifica la URL para ver si hay un término de búsqueda presente.
- Si lo hay, filtra automáticamente los resultados basados en ese término.
-
Sincronización bidireccional:
- Asegúrate de que cualquier cambio en la barra de búsqueda se refleje en la URL.
- Al mismo tiempo, si la URL cambia externamente (como al pegar en otra pestaña), asegúrate de que la interfaz se actualice para mostrar los resultados correctos.
Conclusión final del reto
Este ejercicio no solo nos ayuda a pulir habilidades en React Router, sino que también nos invita a pensar en cómo hacer aplicaciones más accesibles y fáciles de usar. Recordemos, la clave está en experimentar y aprender del proceso. Si encuentras dificultades, no dudes en compartir tus intentos y descubrimientos, no importa si la solución no es perfecta al inicio. ¡Cada intento es un paso más hacia el dominio de la herramienta!