Implementando routing del lado del cliente
Clase 5 de 13 • Taller de Creación de Router para Single Page App con JavaScript
Resumen
¿Qué es el método pushState
?
El método pushState
es esencial para el manejo de la historia de navegación en aplicaciones web. Pertenece al objeto history
, el cual a su vez está contenido en el objeto window
del navegador. Este método nos permite modificar el historial de la sesión del navegador sin recargar la página. Así, se puede alterar el URL que se muestra al usuario y actualizar el estado de la aplicación de forma dinámica.
¿Cuáles son las propiedades de pushState
?
El uso de pushState
implica proporcionar tres propiedades clave:
-
State Object (
data
): Aquí guardamos los datos que necesitamos preservar en este movimiento. Por ejemplo, si queremos rastrear una acción del usuario como "movimiento", se incluiría en esta propiedad. -
Title (
title
): Aunque se incluye como propiedad, actualmente los navegadores suelen ignorarla. Sin embargo, es buena práctica definir un título que permita identificar de forma amigable el estado actual en el historial. -
URL Path (
path
): Este indica la ruta a la cual deseamos dirigirnos. Es crucial, pues modifica el URL que aparece en la barra de direcciones del navegador, creando la ilusión de una navegación entre páginas diferentes.
window.history.pushState({data: 'movimiento'}, 'titulo', '/nueva-ruta');
¿Cómo se integra pushState
en el navegador?
Para experimentar con pushState
, puedes abrir la consola del navegador. Esta ofrece un acceso ágil para verificar el comportamiento del objeto history
:
- Presiona
F12
para abrir las herramientas de desarrollo. - Selecciona la pestaña "Consola" para interactuar con el DOM y ejecutar JavaScript en tiempo real.
Aquí puedes visualizar la estructura del objeto history
:
console.log(window.history);
Observarás propiedades como el tamaño del historial de navegación (length
), útiles para verificar la cantidad de páginas por las que el usuario ha navegado durante la sesión actual.
Un ejemplo práctico con Platzi
Para comprender mejor el uso de pushState
, sigamos un ejemplo interactivo en Platzi:
- Visita
platzi.com/clases
y abre la consola. - Al escribir
window.history
, verificamos que el historial tiene un tamañolength
inicial. - Modifiquemos el estado actual con
pushState
:
window.history.pushState({data: 'movimiento'}, 'titulo', '/');
Al ejecutar este código, notarás el cambio inmediato en el URL. Este tipo de interacción es clave para crear rutas personalizadas en nuestras aplicaciones, asegurando que el interfaz de usuario responda de manera dinámica sin recargar la página.
¿Por qué es importante para el desarrollo web?
El control sobre el history
de una aplicación web es fundamental cuando se busca implementar un enrutador cliente-side en una aplicación de una sola página (SPA). Este control permite optimizar la experiencia del usuario, haciendo que las transiciones entre vistas sean más fluidas y eficientes.
- Mejora la navegación: Los usuarios pueden regresar a estados anteriores usando los botones de navegación del navegador, manteniendo el estado de la aplicación y sin requerir redespliegue de recursos.
- Facilita las URLs legibles: Se pueden mantener URLs descriptivas que facilitan al usuario conocer su ubicación exacta en la aplicación, mejorando la usabilidad y SEO.
- Enruta sin recargar: Al ser parte de las capacidades de JavaScript, permite realizar cambios en el estado de la aplicación sin interrupciones perceptibles para los usuarios.
Implementar pushState
eficazmente ofrece a los desarrolladores una herramienta poderosa para mejorar la experiencia del usuario, y al mismo tiempo, construir aplicaciones robustas y coherentes. ¡Continúa aprendiendo y explorando estas capacidades para sacar el máximo provecho a tus proyectos web!