Instalación de View Router paso a paso

Clase 32 de 53Curso Profesional de Vue.js 2

Resumen

Aprende a instalar y configurar View Router paso a paso para construir una single page application funcional, ordenada y sin errores. Desde el comando de npm hasta el uso de router-view y el manejo de estados con v-if, aquí tienes un flujo claro y práctico basado en el código real.

¿Cómo instalar y habilitar view router en la app?

Para empezar, se usa una librería oficial mantenida por el mismo Core Team del framework. La documentación es completa y explica instalación y características. La integración requiere instalar la dependencia, crear las rutas y registrar el router en la instancia global de View.

  • Instala la dependencia con npm.
  • Crea un archivo de rutas y asocia path con componentes.
  • Importa las rutas en main.js y registra el router.
  • Pasa la instancia de router a la instancia principal.

Ejecuta la instalación:

npm i -S view en router

Define rutas en src/routes.js:

// src/routes.js
import Search from '@/components/Search.view'

const routes = [
  { path: '/', name: 'Search', component: Search }
]

export default routes

Registra el router en main.js:

// src/main.js
import View from 'view'
import ViewRouter from 'view en router'
import routes from '@/routes'
import App from './App.view'

View.use(ViewRouter)

const router = new ViewRouter({ routes })

new View({
  router,
  render: h => h(App)
}).$mount('#app')

Claves del setup:

  • Importar dependencias sin ./ ni @/ indica que vienen de npm.
  • Declarar un array de rutas y exportarlo por defecto.
  • Asociar path y component; opcionalmente usar name para navegación programática.

¿Qué refactor del app mejora la arquitectura con rutas?

El objetivo es que el componente principal quede mínimo y estructural, delegando la lógica a componentes de página. Se crea un componente Search y se mueve allí el contenido que no pertenece al esqueleto global.

  • Duplica App.view como Components/Search.view.
  • En Search.view: usa
    , elimina header, footer e imports extra.
  • Quita el import del CSS global de Search.view.
  • En App.view: deja solo estructura base, sin lógica, con header y footer.
  • Inserta router-view entre header y footer para el contenido dinámico.

App.view minimal con router-view:

<template>
  <div id="app">
    <PMHeader />
    <router-view />
    <PMFooter />
  </div>
</template>

<script>
import PMHeader from '@/components/PMHeader.view'
import PMFooter from '@/components/PMFooter.view'

export default { components: { PMHeader, PMFooter } }
</script>

Beneficios del refactor:

  • Separación de responsabilidades: App.view gestiona la estructura; Search.view gestiona la página.
  • Escalabilidad: cada ruta tendrá su componente dedicado.
  • Mantenibilidad: menos acoplamiento entre el router y la UI.

¿Cómo resolver errores comunes del player con directivas v-if?

En la consola surgió un error: intentar leer la propiedad images de algo undefined al cargar el Player sin una canción seleccionada. El componente accedía a track.album.images cuando aún no existía track. Solución: renderizado condicional con v-if para evitar acceder a datos inexistentes.

  • Usa v-if para esperar a que track exista.
  • Verifica también que track.album tenga valor.
  • Así evitas lecturas de propiedades sobre undefined.

Ejemplo en Player.view:

<template>
  <section v-if="track && track.album">
    <img :src="track.album.images[0]" alt="cover" />
    <!-- resto del player -->
  </section>
</template>

<script>
export default {
  props: { track: Object }
}
</script>

Buenas prácticas señaladas:

  • En objetos de configuración, separa propiedades con coma para evitar errores de compilación.
  • Mantén fuera del DOM los componentes que dependen de datos aún no cargados.
  • Comprueba en la console y corrige antes de continuar.

Con esto, el Search Component se renderiza, se pueden buscar canciones, reproducirlas y no aparecen errores al iniciar. Próximo paso natural: rutas programáticas y parametrizables para flujos más avanzados.

¿Tienes dudas o una mejora que sumar? Comparte en comentarios qué parte del flujo te gustaría profundizar: instalación, refactor o manejo de estados con v-if.

      Instalación de View Router paso a paso