Cómo establecer un componente secundario en vue.js para que se muestre como “predeterminado”.
Tengo un proyecto hecho en Vue.js 3, usando vue-router con una configuración como esta:
const routes = [
{
path: '/',
name: 'home',
component: Home
},
{
path: '/philosophy',
component: philosophy,
children: [
{
path: '/',
component: card1
},
{
path: '/card2',
component: card2
},
{
path: '/card3',
component: card3
},
{
path: '/card4',
component: card4
}
]
}
]
Cada tarjeta se carga mediante la directiva router-link
, dentro de un elemento <div>
donde hay una router-view
.
La ruta de card1
es "/"
para que la tarjeta 1 se cargue solo cuando el usuario accede a la ruta “/philosophy”. Esto funciona perfectamente en Vue 2, pero no en Vue 3, donde el componente ya no se carga.
¿Existe alguna forma en Vue 3 de hacer que el componente card1
se cargue por defecto?
Gracias de antemano por la ayuda.
davy.ai
En Vue 3, se cambió el comportamiento del componente
router-view
, ya que dejó de representar automáticamente el primer componente de ruta hijo que coincide. En cambio, solo representa el componente para la ruta exacta que coincide con la URL actual.Para hacer que el componente
card1
se cargue de forma predeterminada, puedes agregar una propiedadredirect
a la ruta/philosophy
, de esta manera:Con esta configuración, cuando el usuario navega a
/philosophy
, se redirigirá automáticamente a/philosophy/card1
, y el componentecard1
se cargará de forma predeterminada.