Vue Router es una biblioteca oficial de Vue.js que proporciona un sistema de enrutamiento para aplicaciones Vue. Permite a los desarrolladores definir rutas y componentes asociados, lo que facilita la creación de aplicaciones de una sola página (SPA).
Configuración básica de enrutamiento
Para utilizar Vue Router, primero debemos instalarlo. Si estás utilizando Vue CLI, puedes agregar Vue Router durante la creación del proyecto. Si ya tienes un proyecto Vue.js existente, puedes agregar Vue Router con el siguiente comando:
npm install vue-router
Una vez instalado Vue Router, necesitamos configurarlo. Aquí es donde definimos las rutas de nuestra aplicación. Cada ruta se mapea a un componente Vue.js. Cuando esa ruta es visitada en el navegador, el componente correspondiente se renderiza.
Para configurar el enrutamiento en Vue, primero debes importar createRouter
de vue-router
. Luego, puedes definir las rutas de tu aplicación. Cada ruta es un objeto que define un path
, un name
y un component
. Aquí tienes un ejemplo de cómo se ve:
<script setup>
import { createRouter } from 'vue-router'
import VistaInicio from './views/VistaInicio.vue'
import VistaListaProductos from './views/VistaListaProductos.vue'
// Creación del router
const router = createRouter({
routes: [
{
path: '/',
name: 'inicio',
component: VistaInicio
},
{
path: '/lista-productos',
name: 'lista-productos',
component: VistaListaProductos
}
]
})
</script>
En este ejemplo, hemos definido dos rutas: una para la página de inicio (/
) y otra para la lista de productos (/lista-productos
). Cada ruta está asociada a un componente Vue, que se renderizará cuando se visite la ruta.
Enrutamiento dinámico
El enrutamiento dinámico es una característica poderosa de Vue Router que permite definir rutas con parámetros. Esto es útil cuando tienes una ruta que depende de algún tipo de dato, como un ID de producto. Aquí tienes un ejemplo de cómo configurar el enrutamiento dinámico:
<script setup>
import { createRouter } from 'vue-router'
import VistaProducto from './views/VistaProducto.vue'
// Creación del router con ruta dinámica
const router = createRouter({
routes: [
{
path: '/producto/:id',
name: 'producto',
component: VistaProducto
}
]
})
</script>
En este ejemplo, la ruta del producto incluye un parámetro :id
. Cuando se visita una ruta como /producto/1
, el 1
se pasará como un parámetro a VistaProducto
.
Enrutamiento anidado
El enrutamiento anidado te permite tener rutas dentro de otras rutas. Esto es útil cuando tienes una sección de tu aplicación que tiene su propia subnavegación. Aquí tienes un ejemplo de cómo configurar el enrutamiento anidado:
<script setup>
import { createRouter } from 'vue-router'
import VistaProducto from './views/VistaProducto.vue'
import ReseñasProducto from './components/ReseñasProducto.vue'
import VariacionesProducto from './components/VariacionesProducto.vue'
// Creación del router con rutas anidadas
const router = createRouter({
routes: [
{
path: '/producto/:id',
name: 'producto',
component: VistaProducto,
children: [
{
path: 'reseñas',
component: ReseñasProducto
},
{
path: 'variaciones',
component: VariacionesProducto
}
]
}
]
})
</script>
*En este ejemplo, la ruta del producto tiene dos rutas hijas: reseñas
y variaciones
. Estas rutas se visitarán como /producto/1/reseñas
y `/producto/1/variaciones
`, respectivamente.*
Redirecciones
Vue Router también te permite configurar redirecciones. Esto es útil cuando quieres que una ruta específica redirija a otra ruta. Aquí tienes un ejemplo de cómo configurar una redirección:
<script setup>
import { createRouter } from 'vue-router'
import VistaListaProductos from './views/VistaListaProductos.vue'
// Creación del router con redirección
const router = createRouter({
routes: [
{
path: '/',
name: 'inicio',
redirect: to => ({ path: '/lista-productos' })
},
{
path: '/lista-productos',
name: 'lista-productos',
component: VistaListaProductos
}
]
})
</script>
En este ejemplo, la ruta de la página de inicio (/
) se redirige a la ruta de la lista de productos (/lista-productos
).
Navegación programática
Vue Router proporciona métodos para navegar a diferentes rutas de forma programática. Puedes utilizar el método push
del router para navegar a una ruta específica. Aquí tienes un ejemplo de cómo hacerlo:
<script setup>
import { useRouter } from 'vue-router'
// Dentro de un componente Vue
export default {
methods: {
irAListaProductos() {
this.$router.push('/lista-productos')
}
}
}
</script>
En este ejemplo, hemos definido un método irAListaProductos
que navega a la ruta /lista-productos
cuando se llama.
Conclusión
Vue Router es una herramienta poderosa y flexible para manejar el enrutamiento en tus aplicaciones Vue. Con características como el enrutamiento dinámico, el enrutamiento anidado y las redirecciones, puedes crear aplicaciones complejas y fáciles de navegar.
Recuerda que una buena estructura de enrutamiento es esencial para la SEO. Asegúrate de que tus rutas son claras y descriptivas, y que utilizas correctamente las redirecciones y los parámetros de ruta para ayudar a los motores de búsqueda a entender la estructura de tu sitio.
Además, siempre es una buena práctica comentar tu código y utilizar nombres de variables descriptivos. Esto no sólo te ayudará a ti y a otros desarrolladores a entender tu código, sino que también puede mejorar la legibilidad de tu sitio para los motores de búsqueda.