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
* docs: translate to french the end of file
Ref: #158
* refactor: add space after each html tag and before :
* docs:[french] syntaxe correction
Co-Authored-By: Julien Grünhagel <[email protected]>
* docs:[french] syntaxe correction
Co-Authored-By: Julien Grünhagel <[email protected]>
* docs:[french] syntaxe correction
Co-Authored-By: Julien Grünhagel <[email protected]>
* docs:[french] syntaxe correction
Co-Authored-By: Julien Grünhagel <[email protected]>
Copy file name to clipboardExpand all lines: src/v2/guide/components-slots.md
+61-61
Original file line number
Diff line number
Diff line change
@@ -83,45 +83,45 @@ Souvenez-vous de cette règle :
83
83
84
84
Il y a des cas où il est utile de spécifier un contenu par défaut pour un slot qui sera rendu uniquement si aucun contenu n'est fourni. Par exemple, dans le composant `<submit-button>` :
85
85
86
-
```html
86
+
```html
87
87
<buttontype="submit">
88
88
<slot></slot>
89
89
</button>
90
90
```
91
91
92
92
Nous pourrions vouloir que le texte « Envoyer » soit rendu à l'intérieur de `<button>` la plupart du temps. Pour faire de « Envoyer » le contenu par défaut, nous pouvons le placer à l'intérieur des balises `<slot>` :
93
93
94
-
```html
94
+
```html
95
95
<buttontype="submit">
96
96
<slot>Envoyer</slot>
97
97
</button>
98
98
```
99
99
100
100
Maintenant quand nous utilisons `<submit-button>` dans le composant parent, nous ne fournissons aucun contenu pour le slot :
101
101
102
-
```html
102
+
```html
103
103
<submit-button></submit-button>
104
104
```
105
105
106
106
ce qui fera le rendu du contenu par défaut « Envoyer » :
107
107
108
-
```html
108
+
```html
109
109
<buttontype="submit">
110
110
Envoyer
111
111
</button>
112
112
```
113
113
114
114
Cependant, si nous fournissons le contenu :
115
115
116
-
```html
116
+
```html
117
117
<submit-button>
118
118
Sauver
119
119
</submit-button>
120
120
```
121
121
122
122
Le contenu fourni sera rendu à la place :
123
123
124
-
```html
124
+
```html
125
125
<buttontype="submit">
126
126
Sauver
127
127
</button>
@@ -167,7 +167,7 @@ Un `<slot>` sans `name` obtient implicitement le nom "default".
167
167
168
168
Pour fournir du contenu à des slots nommés, nous pouvons utiliser la directive `v-slot` sur un `<template>`, fournissant le nom du slot en tant qu'argument de `v-slot` :
169
169
170
-
```html
170
+
```html
171
171
<base-layout>
172
172
<templatev-slot:header>
173
173
<h1>Le titre de ma page</h1>
@@ -186,7 +186,7 @@ Maintenant, tout a l'intérieur des éléments `<template>` sera passé aux slot
186
186
187
187
Cependant, vous pouvez toujours entourer le contenu du slot par défaut dans un `<template>` si vous désirez que cela soit plus explicite :
188
188
189
-
```html
189
+
```html
190
190
<base-layout>
191
191
<templatev-slot:header>
192
192
<h1>Le titre de ma page</h1>
@@ -228,7 +228,7 @@ Notez que **`v-slot` ne peut seulement être ajouté à un `<template>`** (avec
228
228
229
229
Parfois, il est utile pour les contenus de slot d'avoir accès aux données uniquement disponibles dans le composant enfant. Par exemple, imaginez un composant `<current-user>` avec le template suivant :
230
230
231
-
```html
231
+
```html
232
232
<span>
233
233
<slot>{{ user.lastName }}</slot>
234
234
</span>
@@ -320,7 +320,7 @@ function (slotProps) {
320
320
}
321
321
```
322
322
323
-
Cela signifie que la valeur de `v-slot` peut accepter n'importe quelle expression JavaScript valide pouvant apparaitre à la position d'un argument lors de la définition d'une fonction. Également, pour les environnements qui le supportent ([composants monofichier](single-file-components.html) ou les [navigateurs modernes](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs)), vous pouvez utiliser la [décomposition ES2015](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/Affecter_par_d%C3%A9composition#Object_destructuring) pour définir une collection de props de slot comme suit :
323
+
Cela signifie que la valeur de `v-slot` peut accepter n'importe quelle expression JavaScript valide pouvant apparaitre à la position d'un argument lors de la définition d'une fonction. Également, pour les environnements qui le supportent ([composants monofichier](single-file-components.html) ou les [navigateurs modernes](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/Affecter_par_d%C3%A9composition#Compatibilit%C3%A9_des_navigateurs)), vous pouvez utiliser la [décomposition ES2015](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/Affecter_par_d%C3%A9composition#D%C3%A9composer_un_objet) pour définir une collection de props de slot comme suit :
324
324
325
325
```html
326
326
<current-userv-slot="{ user }">
@@ -348,7 +348,7 @@ Vous pouvez même définir des valeurs par défaut à utiliser dans le cas où l
348
348
349
349
> Nouveau dans la 2.6.0+
350
350
351
-
[Dynamic directive arguments](syntax.html#Dynamic-Arguments)also work on`v-slot`, allowing the definition of dynamic slot names:
351
+
[Arguments de directive dynamiques](syntax.html#Dynamic-Arguments)fonctionne aussi sur`v-slot`, en permettant de définir des noms de slots dynamiques:
352
352
353
353
```html
354
354
<base-layout>
@@ -358,51 +358,51 @@ Vous pouvez même définir des valeurs par défaut à utiliser dans le cas où l
358
358
</base-layout>
359
359
```
360
360
361
-
## Named Slots Shorthand
361
+
## Abréviation pour les slots nommés
362
362
363
363
> New in 2.6.0+
364
364
365
-
Similar to`v-on`and `v-bind`, `v-slot`also has a shorthand, replacing everything before the argument (`v-slot:`) with the special symbol`#`. For example, `v-slot:header`can be rewritten as`#header`:
365
+
Semblable à`v-on`et`v-bind`, `v-slot`a aussi une abréviation, remplaçant tout ce qui précède l'argument (`v-slot:`) par le symbole spécial`#`. Par exemple, `v-slot:header`peut être réécrit comme`#header`:
366
366
367
-
```html
367
+
```html
368
368
<base-layout>
369
369
<template#header>
370
-
<h1>Here might be a page title</h1>
370
+
<h1>Peut être ici le titre d'une page</h1>
371
371
</template>
372
372
373
-
<p>A paragraph for the main content.</p>
374
-
<p>And another one.</p>
373
+
<p>Un paragraphe pour le contenu principal.</p>
374
+
<p>Un autre paragraphe.</p>
375
375
376
376
<template#footer>
377
-
<p>Here's some contact info</p>
377
+
<p>Quelques informations de contact</p>
378
378
</template>
379
379
</base-layout>
380
380
```
381
381
382
-
However, just as with other directives, the shorthand is only available when an argument is provided. That means the following syntax is invalid:
382
+
Cependant, comme pour les autres directives, l'abréviation n'est disponible que lorsqu'un argument est fourni. Cela signifie que la syntaxe suivante n'est pas valide:
383
383
384
384
```html
385
-
<!--This will trigger a warning-->
385
+
<!--Déclenchera un avertissement-->
386
386
<current-user#="{ user }">
387
387
{{ user.firstName }}
388
388
</current-user>
389
389
```
390
390
391
-
Instead, you must always specify the name of the slot if you wish to use the shorthand:
391
+
Au lieu de cela, vous devez toujours spécifier le nom slot si vous souhaitez utiliser l'abréviation :
392
392
393
393
```html
394
394
<current-user#default="{ user }">
395
395
{{ user.firstName }}
396
396
</current-user>
397
397
```
398
398
399
-
## Other Examples
399
+
## Autres exemples
400
400
401
-
**Slot props allow us to turn slots into reusable templates that can render different content based on input props.**This is most useful when you are designing a reusable component that encapsulates data logic while allowing the consuming parent component to customize part of its layout.
401
+
**Les props de slot nous permettent de transformer les slot en templates réutilisables pouvant afficher différents contenus en fonction des slots fourni en paramètre.**Cela est particulièrement utile lorsque vous concevez un composant réutilisable qui encapsule la logique des données tout en permettant au composant parent de personnaliser une partie de sa mise en page.
402
402
403
-
For example, we are implementing a`<todo-list>`component that contains the layout and filtering logic for a list:
403
+
Par exemple, nous implémentons un composant`<todo-list>`qui contient la logique de mise en page et de filtrage pour une liste :
404
404
405
-
```html
405
+
```html
406
406
<ul>
407
407
<li
408
408
v-for="todo in filteredTodos"
@@ -413,29 +413,29 @@ For example, we are implementing a `<todo-list>` component that contains the lay
413
413
</ul>
414
414
```
415
415
416
-
Instead of hard-coding the content for each todo, we can let the parent component take control by making every todo a slot, then binding`todo`as a slot prop:
416
+
Au lieu de coder en dur le contenu de chaque tâche, nous pouvons laisser le composant parent prendre le contrôle en faisant en sorte que chaque tâche soit un slot, puis lier`todo`en tant que prop du slot :
417
417
418
-
```html
418
+
```html
419
419
<ul>
420
420
<li
421
421
v-for="todo in filteredTodos"
422
422
v-bind:key="todo.id"
423
423
>
424
424
<!--
425
-
We have a slot for each todo, passing it the
426
-
`todo` object as a slot prop.
425
+
Nous avons un slot pour chaque tâche, en le passant le
426
+
`todo` objet comme une prop du slot.
427
427
-->
428
428
<slotname="todo"v-bind:todo="todo">
429
-
<!--Fallback content-->
429
+
<!--Contenu par défaut-->
430
430
{{ todo.text }}
431
431
</slot>
432
432
</li>
433
433
</ul>
434
434
```
435
435
436
-
Now when we use the `<todo-list>` component, we can optionally define an alternative`<template>`for todo items, but with access to data from the child:
436
+
Maintenant, lorsque nous utilisons le composant `<todo-list>`, nous pouvons éventuellement définir un autre`<modèle>`pour les éléments à faire, mais avec un accès aux données de l'enfant :
437
437
438
-
```html
438
+
```html
439
439
<todo-listv-bind:todos="todos">
440
440
<templatev-slot:todo="{ todo }">
441
441
<spanv-if="todo.isComplete">✓</span>
@@ -444,68 +444,68 @@ Now when we use the `<todo-list>` component, we can optionally define an alterna
444
444
</todo-list>
445
445
```
446
446
447
-
However, even this barely scratches the surface of what scoped slots are capable of. For real-life, powerful examples of scoped slot usage, we recommend browsing libraries such as [Vue Virtual Scroller](https://github.com/Akryum/vue-virtual-scroller), [Vue Promised](https://github.com/posva/vue-promised), and[Portal Vue](https://github.com/LinusBorg/portal-vue).
447
+
Cependant, même cela effleure à peine ce que sont capables de faire les scops slots. Pour des exemples concrets et puissants d’utilisation des scops de slots, nous vous recommandons de parcourir des bibliothèques telles que [Vue Virtual Scroller](https://github.com/Akryum/vue-virtual-scroller), [Vue Promised](https://github.com/posva/vue-promised) et[Portal Vue](https://github.com/LinusBorg/portal-vue).
448
448
449
-
## Deprecated Syntax
449
+
## Syntaxe obsolète
450
450
451
-
> The `v-slot`directive was introduced in Vue 2.6.0, offering an improved, alternative API to the still-supported `slot`and`slot-scope`attributes. The full rationale for introducing `v-slot`is described in this[RFC](https://github.com/vuejs/rfcs/blob/master/active-rfcs/0001-new-slot-syntax.md). The `slot`and `slot-scope`attributes will continue to be supported in all future 2.x releases, but are officially deprecated and will eventually be removed in Vue 3.
451
+
> La directive `v-slot`a été introduite dans Vue 2.6.0, offrant une API alternative améliorée aux attributs`slot`et`slot-scope`toujours pris en charge. La justification complète de l'introduction du `v-slot`est décrite dans cette[RFC](https://github.com/vuejs/rfcs/blob/master/active-rfcs/0001-new-slot-syntax.md). Les attributs `slot`et`slot-scope`continueront d'être pris en charge dans toutes les futures versions 2.x, mais sont officiellement obsolètes et seront éventuellement supprimés dans Vue 3.
452
452
453
-
### Named Slots with the `slot` Attribute
453
+
### Slots nommés avec l'attribut `slot`
454
454
455
-
> <abbrtitle="Still supported in all 2.x versions of Vue, but no longer recommended.">Deprecated</abbr> in 2.6.0+. See [here](#Named-Slots) for the new, recommended syntax.
455
+
> <abbrtitle="Toujours pris en charge dans toutes les versions 2.x de Vue, mais n'est plus recommandé.">Obsolète</abbr> pour 2.6.0+. Voir [ici](#Les-slots-nommes) pour la nouvelle syntaxe recommandée.
456
456
457
-
To pass content to named slots from the parent, use the special`slot`attribute on `<template>` (using the `<base-layout>`component described [here](#Named-Slots) as example):
457
+
Pour transmettre le contenu du parent aux slots nommés, utilisez l’attribut spécial`slot`sur `<template>` (utilisant le composant `<base-layout>`décrit [ici](#Les-slots-nommes) par exemple):
458
458
459
-
```html
459
+
```html
460
460
<base-layout>
461
461
<templateslot="header">
462
-
<h1>Here might be a page title</h1>
462
+
<h1>Peut être ici le titre d'une page</h1>
463
463
</template>
464
464
465
-
<p>A paragraph for the main content.</p>
466
-
<p>And another one.</p>
465
+
<p>Un paragraphe pour le contenu principal.</p>
466
+
<p>Un autre paragraphe.</p>
467
467
468
468
<templateslot="footer">
469
-
<p>Here's some contact info</p>
469
+
<p>Quelques informations de contact</p>
470
470
</template>
471
471
</base-layout>
472
472
```
473
473
474
-
Or, the`slot`attribute can also be used directly on a normal element:
474
+
Ou bien, l'attribut`slot`peut également être utilisé directement sur un élément normal :
475
475
476
476
```html
477
477
<base-layout>
478
-
<h1slot="header">Here might be a page title</h1>
478
+
<h1slot="header">Peut être ici le titre d'une page</h1>
479
479
480
-
<p>A paragraph for the main content.</p>
481
-
<p>And another one.</p>
480
+
<p>Un paragraphe pour le contenu principal.</p>
481
+
<p>Un autre paragraphe.</p>
482
482
483
-
<pslot="footer">Here's some contact info</p>
483
+
<pslot="footer">Quelques informations de contact</p>
484
484
</base-layout>
485
485
```
486
486
487
-
There can still be one unnamed slot, which is the**default slot** that serves as a catch-all for any unmatched content. In both examples above, the rendered HTML would be:
487
+
Il peut toujours y avoir un emplacement non nommé, le**slot par défaut**, qui sert de passepartout pour tout contenu sans correspondance. Dans les deux exemples ci-dessus, le code HTML rendu serait :
488
488
489
489
```html
490
490
<divclass="container">
491
491
<header>
492
-
<h1>Here might be a page title</h1>
492
+
<h1>Peut être ici le titre d'une page</h1>
493
493
</header>
494
494
<main>
495
-
<p>A paragraph for the main content.</p>
496
-
<p>And another one.</p>
495
+
<p>Un paragraphe pour le contenu principal.</p>
496
+
<p>Un autre paragraphe.</p>
497
497
</main>
498
498
<footer>
499
-
<p>Here's some contact info</p>
499
+
<p>Quelques informations de contact</p>
500
500
</footer>
501
501
</div>
502
502
```
503
503
504
-
### Scoped Slots with the `slot-scope` Attribute
504
+
### Slots avec portée avec l'attribut `slot-scope`
505
505
506
-
> <abbrtitle="Still supported in all 2.x versions of Vue, but no longer recommended.">Deprecated</abbr> in 2.6.0+. See [here](#Scoped-Slots) for the new, recommended syntax.
506
+
> <abbrtitle="Toujours pris en charge dans toutes les versions 2.x de Vue, mais n'est plus recommandé.">Obsolète</abbr> pour 2.6.0+. Voir [ici](#Slots-avec-portee) pour la nouvelle syntaxe recommandée.
507
507
508
-
To receive props passed to a slot, the parent component can use `<template>`with the`slot-scope`attribute (using the `<slot-example>`described [here](#Scoped-Slots) as example):
508
+
Pour recevoir les props passés à un slot, le composant parent peut utiliser `<template>`avec l'attribut`slot-scope`(en utilisant le `<slot-example>`décrit [ici](#Slots-avec-portee) par exemple) :
509
509
510
510
```html
511
511
<slot-example>
@@ -515,9 +515,9 @@ To receive props passed to a slot, the parent component can use `<template>` wit
515
515
</slot-example>
516
516
```
517
517
518
-
Here, `slot-scope`declares the received props object as the `slotProps`variable, and makes it available inside the`<template>` scope. You can name`slotProps`anything you like similar to naming function arguments in JavaScript.
518
+
Ici, `slot-scope`déclare l'objet props reçu en tant que variable`slotProps`et le rend disponible dans la portée`<template>`. Vous pouvez nommer`slotProps`comme vous le souhaitez, comme pour nommer les arguments des fonctions en JavaScript.
519
519
520
-
Here`slot="default"`can be omitted as it is implied:
520
+
Ici`slot="default"`peut être omis car cela sous-entend :
521
521
522
522
```html
523
523
<slot-example>
@@ -527,7 +527,7 @@ Here `slot="default"` can be omitted as it is implied:
527
527
</slot-example>
528
528
```
529
529
530
-
The`slot-scope`attribute can also be used directly on a non-`<template>` element (including components):
530
+
L'attribut`slot-scope`peut également être utilisé directement sur un élément non-`<template>`(y compris les composants) :
531
531
532
532
```html
533
533
<slot-example>
@@ -537,7 +537,7 @@ The `slot-scope` attribute can also be used directly on a non-`<template>` eleme
537
537
</slot-example>
538
538
```
539
539
540
-
The value of`slot-scope`can accept any valid JavaScript expression that can appear in the argument position of a function definition. This means in supported environments ([single-file components](single-file-components.html)or [modern browsers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Browser_compatibility)) you can also use [ES2015 destructuring](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring) in the expression, like so:
540
+
La valeur de`slot-scope`peut accepter toute expression JavaScript valide pouvant apparaitre dans la position d'argument d'une définition de fonction. Cela signifie que dans les environnements pris en charge ([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%C3%A9_des_navigateurs)) vous pouvez aussi utiliser [Décomposition ES2015](https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Op%C3%A9rateurs/Affecter_par_d%C3%A9composition#D%C3%A9composer_un_objet) dans l'expression, comme ceci :
541
541
542
542
```html
543
543
<slot-example>
@@ -547,7 +547,7 @@ The value of `slot-scope` can accept any valid JavaScript expression that can ap
547
547
</slot-example>
548
548
```
549
549
550
-
Using the `<todo-list>`described [here](#Other-Examples) as an example, here's the equivalent usage using `slot-scope`:
550
+
En utilisant le `<todo-list>`décrit [ici](#Autres-exemples) à titre d'exemple, voici l'utilisation équivalente en utilisant `slot-scope`:
0 commit comments