¿Puede vue-router obtener el atributo de nombre definido por los enrutadores en función de la URL?
Sí. This.$route.name puede obtener el nombre correspondiente
Existen principalmente los siguientes pasos:
(1) Establecer la configuración de enrutamiento
router .map ({
'/history/:deviceId/:dataId': {
name: 'history', // le damos un nombre a la ruta
componente: { ... }
}
})
Aquí hay 2 puntos clave:
a) Dar nombre a la ruta, es decir, el nombre de arriba: 'historial',
b) Utilice el número que comienza con dos puntos en la ruta para aceptar parámetros, que es el anterior: deviceId, :dataId; >(2) Pasar parámetros en v-link;
lt; a v-link="{ name: 'history', params: { deviceId: 123, dataId: 456 }}"gt;historylt; /agt;
Puedes usar variables para 123 y 456 aquí.
Por ejemplo, el componente correspondiente a la plantilla tiene dos variables definidas de la siguiente manera:
data: function() {
return {
deviceId: 123,
dataId: 456
}
}
En este momento, el v-link anterior se puede reescrito como:
p>lt; a v-link="{ nombre: 'historia', parámetros: { dispositivoId: dispositivoId, datosId: datosId }}"gt;/agt;
(3) Obtenga los parámetros de entrada en el componente de destino del enrutador
Por ejemplo, puede usar esto en la función lista del componente de destino del enrutador.
listo: function(){
console.log('deviceid: ' this.$route.params.deviceId);
console.log(' dataId: ' this.$route.params.dataId);
}