Navegación de Rutas con Vue Router en Aplicaciones SPA

Clase 33 de 53Curso Profesional de Vue.js 2

Resumen

¿Cómo navegar rutas en Vue Router?

Vue Router es una herramienta poderosa para manejar rutas en aplicaciones Vue. Aprender a navegar entre rutas eficazmente es crucial para crear experiencias de usuario fluidas y coherentes.

¿Cómo crear un componente y asociarlo a una ruta?

Para comenzar a navegar entre rutas, necesitas un componente que estará asociado a una ruta específica. Aquí te mostramos cómo hacerlo:

  1. Crear un componente nuevo:

    • Crea un componente llamado About.view.
    • Ubica este nuevo componente dentro de la carpeta components.
    • Elimina las secciones <script> y <style>, manteniendo solo el HTML básico.
    • Añade un <div> con la clase container y un <h1> con la clase title que diga "Nosotros".
  2. Definir la nueva ruta:

    • Dirígete al archivo routes.js y define el camino para el componente recién creado.
    • Importa el componente About y crea una nueva ruta:
    { path: '/about', component: About, name: 'about' }
    

Este proceso facilita la creación de componentes y rutas en Vue, esencial para manejar la navegación en tus aplicaciones.

¿Cómo navegar usando elementos HTML?

Para ofrecer una experiencia de usuario más intuitiva, necesitamos proporcionar herramientas de navegación en la interfaz de usuario:

  1. Modificar el archivo Header.view:

    • Dentro de Header.view, localiza la sección navi-write.navi-menu.
    • Añade elementos router-link que actúan como enlaces HTML y permiten la navegación entre rutas:
    <router-link class="navitem" to="/search">Buscar</router-link>
    <router-link class="navitem" to="/about">Nosotros</router-link>
    
  2. Estilos con Bulma:

    • Aplica clases de Bulma, como navitem, para mejorar el aspecto visual de los enlaces.

Navegación a través de router-link es simple y efectiva, permitiendo a los usuarios moverse entre diferentes secciones de tu aplicación sin modificar la URL directamente.

¿Cómo trabajar con rutas programáticas?

A veces, necesitarás navegar entre rutas usando el código en lugar de los enlaces HTML. Esto es común cuando el flujo de tu aplicación depende de eventos del usuario o del backend:

  1. Crear un componente para detalles:

    • Crea TrackDetail.view dentro de components.
    • En este componente, usa la función data para establecer un objeto track vacío.
  2. Definir rutas parametrizadas:

    • En routes.js, crea una ruta dinámica que aceptará parámetros:
    { path: '/track/:id', component: TrackDetail, name: 'track' }
    
  3. Uso de this.$router:

    • Dentro del método creado, lee el parámetro id de la URL:
    this.$router.push({ name: 'track', params: { id: trackId } })
    
    • Asegúrate de manejar el router-view y router adecuadamente para no tener errores de navegación.

El uso de rutas dinámicas y navegación programática permite una flexibilidad extraordinaria al manejar contenido variable y personalizado dentro de una misma estructura de página.

¿Cómo activar el modo de historia?

Para mejorar la usabilidad y apariencia de las URL:

  1. Configuración del history mode:

    • Modifica la instancia del router en main.js:
    const router = new VueRouter({
      mode: 'history',
      routes: [...]
    })
    
    • Este ajuste permite URLs limpias sin el carácter #.
  2. Consideraciones del servidor:

    • Asegúrate de que el servidor web admita la configuración del history mode para evitar posibles problemas de enrutamiento del lado del cliente.

Activar el history mode proporciona una apariencia profesional y enfatiza una estructura de URL semántica, algo esencial en aplicaciones modernas.

Aprender a navegar rutas en Vue Router no solo mejora tus habilidades de desarrollo en Vue, sino que también te prepara para crear experiencias de usuario ricas y dinámicas. ¡Sigue explorando y mejorando cada día tu aplicación!