...
| Bloque de código |
|---|
|
<router-link :to="{ name: 'nuevaComunicacion', params: { idReenviar: fila.data.id }}"> |
Como vemos, se le indica a dónde navegar con el nombre que hemos definido previamente para la ruta. Además podemos pasar datos como parámetro, con params (también vale para pasar props al componente al que se navega). Después, en el componente al que se navega (utilizando Options API), podemos coger dichos datos referenciando a this.$route.params. En este ejemplo, el objeto que se ha pasado se cogería con this.$route.params.idReenviar.
Si queremos hacerlo de forma programática, en la parte de JavaScript con this.$router.push():
| Bloque de código |
|---|
|
// path
this.$router.push('/home')
// path
this.$router.push({ path: '/home' })
// nombre + parámetros path (....um.es/loquesea?userId=123)
this.$router.push({ name: 'user', params: { userId: '123' } })
// nombre + parámetros query (....um.es/loquesea?userId=123)
this.$router.push({ name: 'user', params: { userId: '123' } }) |
Aquí vemos las opciones de path params y query params. Para utilizar los path params, es necesario navegar por nombre, no utilizando el path. Para obtener sus valores en el componente al que se navega, lo podemos hacer con:
| Bloque de código |
|---|
|
// path params
this.$route.params.nombreparametro
// query params
this.$route.query.nombreparametro |
...
En Composition API, la sintaxis cambia, en vez de acceder a this.$router y this.$route, disponemos de useRouter() y useRoute():
| Bloque de código |
|---|
|
<script setup>
import { userRouter, useRoute } from 'vue-router'
const router = useRouter()
const route = useRoute()
</script> |
Y ya las se accede como visto anteriormente, pero usando router o route:
| Bloque de código |
|---|
// path
router.push('/home')
// path
router.push({ path: '/home' })
// nombre + parámetros path (....um.es/loquesea?userId=123)
router.push({ name: 'user', params: { userId: '123' } })
// nombre + parámetros query (....um.es/loquesea?userId=123)
router.push({ name: 'user', params: { userId: '123' } })
// path params
route.params.nombreparametro
// query params
route.query.nombreparametroHome' }) |
...