Skip to content

Commit 0edee00

Browse files
committed
components-slots.md harmonisation avec le reste de la documentation
Signed-off-by: Haeresis <bruno.lesieur@gmail.com>
1 parent cbf64e4 commit 0edee00

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

src/v2/guide/components-slots.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ order: 104
66

77
> Cette page suppose que vous avez déjà lu les principes de base des [composants](components.html). Lisez-les en premier si les composants sont quelque chose de nouveau pour vous.
88
9-
## Les « Slot content » ou « Contenu de slot »
9+
## Les contenu de slot
1010

11-
Vue implémente une API de distribution de contenu inspirée du [Brouillon de spécification des WebComponents](https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Slots-Proposal.md) utilisant l'élément `<slot>` comme zone de distribution de contenu.
11+
Vue implémente une API de distribution de contenu inspirée du [brouillon de spécification des WebComponents](https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Slots-Proposal.md) utilisant l'élément `<slot>` comme zone de distribution de contenu.
1212

1313
Cela vous permet de composer vos composants ainsi :
14+
1415
``` html
1516
<navigation-link url="/profile">
1617
Mon profil
@@ -50,9 +51,9 @@ Ou encore faire appel à d'autres composants :
5051

5152
Si `<navigation-link>` ne contient **pas** d'élément `<slot>`, le contenu enfant sera simplement ignoré.
5253

53-
## Les Slots nommés
54+
## Les slots nommés
5455

55-
Dans certains cas, il peut être intéressant d'avoir plusieurs éléments `<slot>`. Dans un exemple hypothétique, voici le template d'un composant `<base-layout>`:
56+
Dans certains cas, il peut être intéressant d'avoir plusieurs éléments `<slot>`. Dans un exemple hypothétique, voici le template d'un composant `<base-layout>` :
5657

5758
``` html
5859
<div class="container">
@@ -101,7 +102,7 @@ Afin de distribuer le contenu dans les éléments `<slot>` appropriés, il suffi
101102
</base-layout>
102103
```
103104

104-
Ou utiliser l'attribut `slot` directement sur un élément normal:
105+
ou utiliser l'attribut `slot` directement sur un élément normal:
105106

106107
``` html
107108
<base-layout>
@@ -145,7 +146,7 @@ Pour procéder de la sorte, il est possible de spécifier le contenu par défaut
145146

146147
Si le `<slot>` est rempli dans le composant parent, le contenu par défaut est remplacé.
147148

148-
## Scope de compilation du template
149+
## Portée de compilation du template
149150

150151
Quand on utilise des données dans le slot, comme dans l'exemple suivant :
151152

@@ -155,11 +156,11 @@ Quand on utilise des données dans le slot, comme dans l'exemple suivant :
155156
</navigation-link>
156157
```
157158

158-
Le `<slot>` bénéficie des mêmes propriétés d'instance (même « scope » ou « contexte ») que le reste du template parent. Le `<slot>` **ne** bénéficie en aucun cas des éléments du « scope » de l'instance de `<navigation-link>`. Par exemple, tenter d'accéder à la props `url` ne fonctionnera pas. À titre de règle générale, souvenez-vous que :
159+
Le `<slot>` bénéficie des mêmes propriétés d'instance (même « contexte ») que le reste du template parent. Le `<slot>` **ne** bénéficie en aucun cas des éléments de portée de l'instance de `<navigation-link>`. Par exemple, tenter d'accéder à la props `url` ne fonctionnera pas. À titre de règle générale, souvenez-vous que :
159160

160161
> Tout ce qui est dans le `<template>` parent est compilé dans le contexte parent. Tout ce qui est dans le `<template>` enfant est compilé dans le contexte enfant.
161162
162-
## Les slots scopés (ou slots avec accès au scope enfant)
163+
## Les slots avec portée
163164

164165
> Nouveauté en 2.1.0+
165166
@@ -176,9 +177,9 @@ Dans certains cas, il peut être intéressant lors de l'utilisation d'un composa
176177
</ul>
177178
```
178179

179-
Dans certaines parties de l'application, il serait intéressant de personnaliser le rendu pour chaque élément de la liste, plutôt que d'afficher seulement `todo.text`. C'est possible avec les slots scopés.
180+
Dans certaines parties de l'application, il serait intéressant de personnaliser le rendu pour chaque élément de la liste, plutôt que d'afficher seulement `todo.text`. C'est possible avec les slots avec portée.
180181

181-
Pour utiliser cette fonctionnalité, nous allons englober le contenu des todos dans un élément `<slot>`, et lui fournir des données appartenant/pertinentes à son contexte : dans notre cas, l'objet `todo`) :
182+
Pour utiliser cette fonctionnalité, nous allons englober le contenu des todos dans un élément `<slot>`, et lui fournir des données appartenant / pertinentes à son contexte : dans notre cas, l'objet `todo`) :
182183

183184
```html
184185
<ul>
@@ -201,11 +202,11 @@ Lorsqu'on utilise le composant `<todo-list>`, il devient alors possible de fourn
201202
```html
202203
<todo-list v-bind:todos="todos">
203204
<!-- Définir `slotProps` pour assigner les données du slot dans une variable -->
204-
<template slot-scope="lesPropsDuSlot">
205+
<template slot-scope="slotProps">
205206
<!-- Ici, nous allons personnaliser le rendu du slot -->
206-
<!-- `lesPropsDuSlot` contiendra les props fournies par v-bind dans le slot enfant -->
207-
<span v-if="lesPropsDuSlot.todo.isComplete">✓</span>
208-
{{ lesPropsDuSlot.todo.text }}
207+
<!-- `slotProps` contiendra les props fournies par v-bind dans le slot enfant -->
208+
<span v-if="slotProps.todo.isComplete">✓</span>
209+
{{ slotProps.todo.text }}
209210
</template>
210211
</todo-list>
211212
```
@@ -214,7 +215,7 @@ Lorsqu'on utilise le composant `<todo-list>`, il devient alors possible de fourn
214215
215216
### Affectation par décomposition du `slot-scope`
216217

217-
La valeur de l'attribut `slot-scope` peut actuellement recevoir une expression JavaScript valide qui pourrait apparaitre en argument de définition d'une fonction. Attention cependant, cette fonctionnalité est soumise à l'utilisation des environnements suivants : [Composants monofichiers](single-file-components.html) ou [Navigateurs modernes](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/Affecter_par_d%C3%A9composition#Compatibilité_des_navigateurs) vous pouvez alors utiliser [Affecter par décomposition (ES2015)](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/Affecter_par_d%C3%A9composition) dans l'expression, de cette manière :
218+
La valeur de l'attribut `slot-scope` peut actuellement recevoir une expression JavaScript valide qui pourrait apparaitre en argument de définition d'une fonction. Attention cependant, cette fonctionnalité n'est utilisable que dans des environnements de [composants monofichiers](single-file-components.html) ou des [navigateurs modernes](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/Affecter_par_d%C3%A9composition#Compatibilité_des_navigateurs). Vous pouvez alors utiliser une [affectation par décomposition (ES2015)](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/Affecter_par_d%C3%A9composition) dans l'expression, de cette manière :
218219

219220
```html
220221
<todo-list v-bind:todos="todos">
@@ -225,4 +226,4 @@ La valeur de l'attribut `slot-scope` peut actuellement recevoir une expression J
225226
</todo-list>
226227
```
227228

228-
Cela peut être pratique pour rendre vos slot scopés un peu plus lisibles.
229+
Cela peut être pratique pour rendre vos slot avec portée un peu plus lisibles.

0 commit comments

Comments
 (0)