Tengo problemas con el enrutador Vue. Soy nuevo, así que perdóname por cualquier error obvio, ya que he estado buscando problemas similares e incluso leí la guía de Vue-Router, sin embargo, nada se destaca como incorrecto.
Tengo una lista de rutas de nivel superior ( / , /tags , /people , etc.) que han funcionado bien. La ruta /tags , por ejemplo, solo mostrará una página que enumera todas las etiquetas y quiero que cada una se vincule a su propia página para editar, así que eso es lo que configuré:
<router-link :to="`/tags/${tag.id}`" v-text="tag.name" />He omitido las otras rutas de nivel superior de mi código de archivo de rutas a continuación para no desordenar nada.
// @/router/index.ts import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router' import Tags from '@/views/Tags/index.vue' import SingleTag from '@/views/Tags/Single.vue' const routes: Array<RouteRecordRaw> = [ { path: '/tags', name: 'Tags', component: Tags, }, { path: '/tags/:id', name: 'Tags', component: SingleTag, }, ] const router = createRouter({ history: createWebHashHistory(), routes, }) export default router Como puede ver aquí, he creado una ruta separada que acepta una identificación. Esto coincide con el router-link anterior, sin embargo, nada funciona. En su lugar, solo enumera el componente Tags . Si cambio el orden de estas dos rutas, solo aparece un montón de advertencias en la consola, como:
No se encontró ninguna coincidencia para la ubicación con la ruta "/tags/13"
Como preferiría tener la ruta de identificación específica como elemento secundario de la página de listado, eso es lo que intenté primero, pero esto solo tiene el mismo problema que las rutas que se enumeran anteriormente.
Ahora, lo que logré hacer funcionar fue cambiar la ruta de identificación específica a /tag/:id en su lugar, sin embargo, no quiero eso si es posible. Quiero mantenerlo como /tags/:id y tenerlo como hijo del principal. ¿Será esto posible o estoy obligado a mantenerlo como /tag/:id ?