1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
# L'objet `Route`
Un **objet `Route`** représente l'état actuel de la route active. Il contient des informations analysées à propos de l'URL courant et **les itinéraires de route** appariés par l'URL.
L'objet `Route` est immutable. Chaque navigation qui se déroule avec succès résultera en un nouvel objet `Route`.
L'objet `Route` peut être trouvé à plusieurs endroits :
- À l'intérieur des composants en tant que `this.$route`
- À l'intérieur des fonctions de rappel des observateurs de `$route`
- Comme valeur de retour après l'appel de `router.match(location)`
- À l'intérieur des fonctions d'interception de la navigation, dans les deux premiers paramètres de la fonction :
``` js
router.beforeEach((to, from, next) => {
// `to` et `from` sont tous les deux des objets Route
})
```
- À l'intérieur de la fonction `scrollBehavior` dans les deux premiers arguments :
``` js
const router = new VueRouter({
scrollBehavior (to, from, savedPosition) {
// `to` et `from` sont tous les deux des objets Route
}
})
```
### Propriétés de l'objet `Route`
- **$route.path**
- type : `string`
Une chaine de caractères représentant le chemin de la route en cours, toujours résolue en tant que chemin absolu, ex : `"/foo/bar"`.
- **$route.params**
- type : `Object`
Un objet qui contient des pairs clé/valeur de segments dynamiques et segments *star*. S'il n'y a pas de paramètres, alors la valeur sera un objet vide.
- **$route.query**
- type : `Object`
Un objet qui contient des pairs clé/valeur de la requête au format d'une chaine de caractères. Par exemple, pour un chemin `/foo?user=1`, on aura `$route.query.user == 1`. S'il n'y a pas de requête, alors la valeur sera un objet vide.
- **$route.hash**
- type : `string`
Le hash de la route courante (avec le `#`), s'il y en a un. S'il n'y a pas de hash, alors la valeur sera une chaine de caractères vide.
- **$route.fullPath**
- type : `string`
L'URL entièrement résolu, incluant la requête et le hash.
- **$route.matched**
- type : `Array<RouteRecord>`
Un `Array` contenant les **les itinéraires de la route** pour chaque segment de chemin imbriqué de la route courante. Les itinéraires de la route sont des copies des objets dans le tableau de configuration `routes` (et dans les tableaux `children`).
``` js
const router = new VueRouter({
routes: [
// l'objet qui suit est un itinéraire de route
{ path: '/foo', component: Foo,
children: [
// c'est aussi un itinéraire
{ path: 'bar', component: Bar }
]
}
]
})
```
Lorsque l'URL sera `/foo/bar`, `$route.matched` sera un `Array` contenant les deux objets (clonés), dans l'ordre parent à l'enfant.
- **$route.name**
Le nom de la route courante, si elle en a un. (Voir [Routes nommées](../essentials/named-routes.md)).
- **$route.redirectedFrom**
Le nom de la route d'où la page a été redirigée, si elle en a un. (Voir [Redirection et alias](../essentials/redirect-and-alias.md)).
|