You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Nested Routes (En) <br><br> *Cette page est en cours de traduction française. Revenez une autre fois pour lire une traduction achevée ou [participez à la traduction française ici](https://github.com/vuejs-fr/vue-router).*
1
+
# Routes imbriquées
2
2
3
-
Real app UIs are usually composed of components that are nested multiple levels deep. It is also very common that the segments of a URL corresponds to a certain structure of nested components, for example:
3
+
Les vrais interfaces utilisateurs d'application sont faites de composants imbriqués à de multiples niveaux de profondeur. Il est aussi très commun que les segments d'URLs correspondent à une certaine structure de composants imbriqués, par exemple :
4
4
5
5
```
6
-
/user/foo/profile /user/foo/posts
7
-
+------------------+ +-----------------+
8
-
| User | | User |
9
-
| +--------------+ | | +-------------+ |
10
-
| | Profile | | +------------> | | Posts | |
11
-
| | | | | | | |
12
-
| +--------------+ | | +-------------+ |
13
-
+------------------+ +-----------------+
6
+
/utilisateur/foo/profil/utilisateur/foo/billets
7
+
+---------------------+ +--------------------+
8
+
| User | | User |
9
+
| +-----------------+ | | +----------------+ |
10
+
| | Profile | | +------------> | | Posts | |
11
+
| | | | | | | |
12
+
| +-----------------+ | | +----------------+ |
13
+
+---------------------+ +--------------------+
14
14
```
15
15
16
-
With`vue-router`, it is very simple to express this relationship using nested route configurations.
16
+
Avec`vue-router`, il est vraiment très simple d'exprimer cette relation en utilisant des configurations de route imbriquées.
17
17
18
-
Given the app we created in the last chapter:
18
+
Reprenons l'application créée au chapitre précédent :
19
19
20
20
```html
21
21
<divid="app">
@@ -25,46 +25,45 @@ Given the app we created in the last chapter:
The `<router-view>`here is a top-level outlet. It renders the component matched by a top level route. Similarly, a rendered component can also contain its own, nested `<router-view>`. For example, if we add one inside the `User`component's template:
38
+
Ici le `<router-view>`est une balise de premier niveau. Il fait le rendu des composants qui concordent avec une route de premier niveau. De la même façon, un composant de rendu peut contenir également sa propre balise `<router-view>` imbriquée. Par exemple, ajoutons en une à l'intérieur du template du composant `User` :
39
39
40
40
```js
41
41
constUser= {
42
42
template:`
43
43
<div class="user">
44
-
<h2>User {{ $route.params.id }}</h2>
44
+
<h2>Utilisateur {{ $route.params.id }}</h2>
45
45
<router-view></router-view>
46
46
</div>
47
47
`
48
48
}
49
49
```
50
50
51
-
To render components into this nested outlet, we need to use the `children`
52
-
option in `VueRouter` constructor config:
51
+
Pour faire le rendu de composants à l'intérieur des balises imbriquées, nous avons besoin d'utiliser l'option `children` dans la configuration du constructeur de `VueRouter` :
53
52
54
53
```js
55
54
constrouter=newVueRouter({
56
55
routes: [
57
-
{ path:'/user/:id', component: User,
56
+
{ path:'/utilisateur/:id', component: User,
58
57
children: [
59
58
{
60
-
// UserProfile will be rendered inside User's <router-view>
61
-
//when /user/:id/profile is matched
59
+
//`UserProfile` va être rendu à l'intérieur du `<router-view>` de `User`
60
+
//quand `/utilisateur/:id/profil` concorde
62
61
path:'profile',
63
62
component: UserProfile
64
63
},
65
64
{
66
-
// UserPosts will be rendered inside User's <router-view>
67
-
//when /user/:id/posts is matched
65
+
//`UserPosts` va être rendu à l'intérieur du `<router-view>` de `User`
66
+
//quand `/utilisateur/:id/billets` concorde
68
67
path:'posts',
69
68
component: UserPosts
70
69
}
@@ -74,27 +73,27 @@ const router = new VueRouter({
74
73
})
75
74
```
76
75
77
-
**Note that nested paths that start with`/`will be treated as a root path. This allows you to leverage the component nesting without having to use a nested URL.**
76
+
**Notez que les chemins imbriqués commençant par`/`vont être traités comme des chemins partant de la racine. Cela vous permet d'adresser des composants imbriqués sans avoir à utiliser une URL imbriquée.**
78
77
79
-
As you can see the `children`option is just another Array of route configuration objects like `routes` itself. Therefore, you can keep nesting views as much as you need.
78
+
Comme vous pouvez le voir, l'option `children`n'est qu'un autre tableau d'objet de configuration de route comme dans `routes`. Et donc, vous pouvez garder les vues imbriquées au plus près de vos besoins.
80
79
81
-
At this point, with the above configuration, when you visit`/user/foo`, nothing will be rendered inside `User`'s outlet, because no sub route is matched. Maybe you do want to render something there. In such case you can provide an empty subroute path:
80
+
À ce niveau, avec la configuration ci-dessus, quand vous visitez`/utilisateur/foo`, rien ne sera rendu dans la partie `User`, car aucune sous route ne concorde. Peut-être voudriez vous afficher quelque chose ici. Dans ce cas, vous pouvez fournir une sous route vide :
82
81
83
82
```js
84
83
constrouter=newVueRouter({
85
84
routes: [
86
85
{
87
-
path:'/user/:id', component: User,
86
+
path:'/utilisateur/:id', component: User,
88
87
children: [
89
-
//UserHome will be rendered inside User's <router-view>
90
-
//when /user/:id is matched
88
+
//`UserProfile` va être rendu à l'intérieur du `<router-view>` de `User`
89
+
//quand `/utilisateur/:id` concorde
91
90
{ path:'', component: UserHome },
92
91
93
-
// ...other sub routes
92
+
// ...autres sous routes
94
93
]
95
94
}
96
95
]
97
96
})
98
97
```
99
98
100
-
A working demo of this example can be found [here](http://jsfiddle.net/yyx990803/L7hscd8h/).
99
+
Une démo de fonctionnement de cet exemple peut-être trouvée [ici](http://jsfiddle.net/yyx990803/L7hscd8h/).
0 commit comments