Skip to content

Commit 0921537

Browse files
committed
Merge remote-tracking branch 'upstream/master'
# Conflicts: # src/v2/api/index.md # src/v2/guide/components.md # src/v2/guide/custom-directive.md # src/v2/guide/list.md # src/v2/guide/syntax.md # src/v2/guide/transitioning-state.md # src/v2/guide/typescript.md # themes/vue/layout/partials/language_dropdown.ejs Signed-off-by: Bruno Lesieur <bruno.lesieur@gmail.com>
2 parents 63b7de8 + ff2e37f commit 0921537

File tree

9 files changed

+144
-43
lines changed

9 files changed

+144
-43
lines changed

src/v2/api/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -670,11 +670,11 @@ if (version === 2) {
670670
Une alternative aux templates en chaîne de caractères vous permettant d'exploiter toute la puissance programmatique de JavaScript. La fonction de rendu `render` reçoit une méthode `createElement` comme premier argument servant à créer des `VNode`s.
671671

672672
Si le composant est un composant fonctionnel, la fonction `render` recevra aussi un argument supplémentaire `context`, qui donne accès aux données contextuelles puisque les composants fonctionnels sont sans instance.
673-
673+
674674
<p class="tip">La fonction `render` a la priorité par rapport à la fonction de rendu compilée à partir de l'option `template`, ou par rapport au template HTML de l'élément d'ancrage dans le DOM qui est spécifié par l'option `el`.</p>
675675

676676
- **Voir aussi :**
677-
- [Fonctions de Rendu](../guide/render-function)
677+
- [Fonctions de Rendu](../guide/render-function.html)
678678

679679
### renderError
680680

@@ -702,7 +702,7 @@ if (version === 2) {
702702
```
703703

704704
- **Voir aussi ::**
705-
- [Fonctions de Rendu](../guide/render-function)
705+
- [Fonctions de Rendu](../guide/render-function.html)
706706

707707

708708
<p class="tip">Tous les hooks du cycle de vie ont automatiquement leur contexte `this` rattaché à l'instance, afin que vous puissiez accéder aux données, propriétés calculées et méthodes. Cela signifie que __vous ne devriez pas utiliser une fonction fléchée pour définir une méthode du cycle de vie__ (p. ex. `created: () => this.fetchTodos()`). La raison est que les fonctions fléchées utilisent le contexte parent, donc `this` ne sera pas l'instance de Vue comme vous pouvez vous y attendre et `this.fetchTodos` sera `undefined`.</p>

src/v2/guide/components.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -501,14 +501,14 @@ Voici un exemple :
501501

502502
``` js
503503
Vue.component('button-counter', {
504-
template: '<button v-on:click="increment">{{ counter }}</button>',
504+
template: '<button v-on:click="incrementCounter">{{ counter }}</button>',
505505
data: function () {
506506
return {
507507
counter: 0
508508
}
509509
},
510510
methods: {
511-
increment: function () {
511+
incrementCounter: function () {
512512
this.counter += 1
513513
this.$emit('increment')
514514
}
@@ -536,14 +536,14 @@ new Vue({
536536
</div>
537537
<script>
538538
Vue.component('button-counter', {
539-
template: '<button v-on:click="increment">{{ counter }}</button>',
539+
template: '<button v-on:click="incrementCounter">{{ counter }}</button>',
540540
data: function () {
541541
return {
542542
counter: 0
543543
}
544544
},
545545
methods: {
546-
increment: function () {
546+
incrementCounter: function () {
547547
this.counter += 1
548548
this.$emit('increment')
549549
}

src/v2/guide/custom-directive.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ Un objet de définition de directive peut fournir plusieurs fonctions de hook (t
6161

6262
- `inserted`: appelée quand l'élément lié a été inséré dans son nœud parent (cela garantit uniquement sa présence dans le nœud parent, mais pas nécessairement dans le document principal).
6363

64-
- `update`: appelée après que le composant conteneur ait été mis à jour, __mais possiblement avant que ses enfants aient été mis à jour__. La valeur de la directive peut ou pas avoir changé, mais vous pouvez ignorer les mises à jour inutiles en comparant les valeurs actuelles et anciennes de la liaison (voir plus bas les arguments de hook).
64+
- `update`: appelée après que le composant conteneur VNode ait été mis à jour, __mais possiblement avant que ses enfants aient été mis à jour__. La valeur de la directive peut ou pas avoir changé, mais vous pouvez ignorer les mises à jour inutiles en comparant les valeurs actuelles et anciennes de la liaison (voir plus bas les arguments de hook).
6565

66-
- `componentUpdated`: appelée après que le composant conteneur __et ses enfants__ aient été mis à jour.
66+
- `componentUpdated`: appelée après que le composant conteneur VNode __et les VNode de ses enfants__ aient été mis à jour.
6767

6868
- `unbind`: appelée uniquement une fois, quand la directive est déliée de l'élément.
6969

src/v2/guide/list.md

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -249,8 +249,8 @@ Voici un exemple complet d'une simple liste de tâches :
249249
<li
250250
is="todo-item"
251251
v-for="(todo, index) in todos"
252-
v-bind:key="index"
253-
v-bind:title="todo"
252+
v-bind:key="todo.id"
253+
v-bind:title="todo.title"
254254
v-on:remove="todos.splice(index, 1)"
255255
></li>
256256
</ul>
@@ -273,22 +273,35 @@ new Vue({
273273
data: {
274274
newTodoText: '',
275275
todos: [
276-
'Faire la vaisselle',
277-
'Sortir les poubelles',
278-
'Tondre la pelouse'
279-
]
276+
{
277+
id: 1,
278+
title: 'Faire la vaisselle',
279+
},
280+
{
281+
id: 2,
282+
title: 'Sortir les poubelles',
283+
},
284+
{
285+
id: 3,
286+
title: 'Tondre la pelouse'
287+
}
288+
],
289+
nextTodoId: 4
280290
},
281291
methods: {
282292
addNewTodo: function () {
283-
this.todos.push(this.newTodoText)
293+
this.todos.push({
294+
id: this.nextTodoId++,
295+
title: this.newTodoText
296+
})
284297
this.newTodoText = ''
285298
}
286299
}
287300
})
288301
```
289302

290303
{% raw %}
291-
<div id="todo-list-example" class="demo">
304+
<div id="todo-list-example">
292305
<input
293306
v-model="newTodoText"
294307
v-on:keyup.enter="addNewTodo"
@@ -298,8 +311,8 @@ new Vue({
298311
<li
299312
is="todo-item"
300313
v-for="(todo, index) in todos"
301-
v-bind:key="index"
302-
v-bind:title="todo"
314+
v-bind:key="todo.id"
315+
v-bind:title="todo.title"
303316
v-on:remove="todos.splice(index, 1)"
304317
></li>
305318
</ul>
@@ -314,19 +327,33 @@ Vue.component('todo-item', {
314327
',
315328
props: ['title']
316329
})
330+
317331
new Vue({
318332
el: '#todo-list-example',
319333
data: {
320334
newTodoText: '',
321335
todos: [
322-
'Faire la vaisselle',
323-
'Sortir les poubelles',
324-
'Tondre la pelouse'
325-
]
336+
{
337+
id: 1,
338+
title: 'Faire la vaisselle',
339+
},
340+
{
341+
id: 2,
342+
title: 'Sortir les poubelles',
343+
},
344+
{
345+
id: 3,
346+
title: 'Tondre la pelouse'
347+
}
348+
],
349+
nextTodoId: 4
326350
},
327351
methods: {
328352
addNewTodo: function () {
329-
this.todos.push(this.newTodoText)
353+
this.todos.push({
354+
id: this.nextTodoId++,
355+
title: this.newTodoText
356+
})
330357
this.newTodoText = ''
331358
}
332359
}

src/v2/guide/syntax.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ Vue.js permet de définir des filtres qui peuvent être utilisés pour appliquer
132132

133133
<p class="tip">Les filtres de Vue 2.x peuvent être seulement utilisés à l'intérieur des interpolations de moustaches et des expressions de `v-bind` (ces dernières étant supportées depuis la 2.1.0+) car les filtres ont été conçus à la base dans le but de transformer du texte. Pour des cas plus complexes de transformation de données dans d'autres directives, vous devriez utiliser les [propriétés calculées](computed.html) à la place.</p>
134134

135-
La fonction de filtre reçoit toujours la valeur de l'expression comme premier argument.
135+
La fonction de filtre reçoit toujours la valeur de l'expression (le résultat de la chaîne) comme premier argument. Dans cet exemple, la fonction de filtre `capitalize` va recevoir la valeur de `message` dans son argument.
136136

137137
``` js
138138
new Vue({
@@ -153,19 +153,21 @@ Les filtres peuvent être chaînés :
153153
{{ message | filterA | filterB }}
154154
```
155155

156+
Dans ce cas, `filterA`, définie avec un seul argument, va recevoir la valeur de `message`. Puis la fonction `filterB` va être appelée avec le résultat de `filterA` passé dans `filterB` en tant que simple argument.
157+
156158
Les filtres sont des fonctions JavaScript et peuvent donc recevoir des arguments :
157159

158160
``` html
159161
{{ message | filterA('arg1', arg2) }}
160162
```
161163

162-
Ici la chaîne de caractères `'arg1'` sera passée au filtre en tant que second argument, et la valeur de l'expression `arg2` sera évaluée et passée en tant que troisième argument.
164+
Ici `filterA` est définie comme une fonction prenant trois arguments. La valeur de `message` va être passée en premier argument. La chaîne de caractères `'arg1'` sera passée au filtre `filterA` en tant que second argument, et la valeur de l'expression `arg2` sera évaluée et passée en tant que troisième argument.
163165

164166
## Abréviations
165167

166168
Le préfixe `v-` sert d'indicateur visuel pour identifier les attributs spécifiques à Vue dans vos templates. C'est pratique lorsque vous utilisez Vue.js pour appliquer des comportements dynamiques sur un balisage existant, mais peut sembler verbeux pour des directives utilisées fréquemment. Par ailleurs, le besoin d'un préfixe `v-`devient moins important quand vous développez une [application monopage](https://fr.wikipedia.org/wiki/Application_web_monopage) où Vue.js gère tous les templates. C'est pourquoi Vue.js fournit des abréviations pour deux des directives les plus utilisées, `v-bind` et `v-on`:
167169

168-
### Abréviation pour `v-bind`
170+
### Abréviation pour `v-bind`
169171

170172
``` html
171173
<!-- syntaxe complète -->

src/v2/guide/team.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,7 @@ order: 31
872872
var language = languageNameFor[languageCode]
873873
if (
874874
languageCode !== 'en' &&
875+
preferredLanguageCode &&
875876
languageCode === preferredLanguageCode.slice(0, 2)
876877
) {
877878
return (

src/v2/guide/transitioning-state.md

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,11 @@ new Vue({
140140
requestAnimationFrame(animate)
141141
}
142142
}
143-
143+
144144
new TWEEN.Tween(this.tweenedColor)
145145
.to(this.color, 750)
146146
.start()
147-
147+
148148
animate()
149149
}
150150
},
@@ -216,11 +216,11 @@ new Vue({
216216
requestAnimationFrame(animate)
217217
}
218218
}
219-
219+
220220
new TWEEN.Tween(this.tweenedColor)
221221
.to(this.color, 750)
222222
.start()
223-
223+
224224
animate()
225225
}
226226
},
@@ -442,14 +442,14 @@ Vue.component('animated-integer', {
442442
requestAnimationFrame(animate)
443443
}
444444
}
445-
445+
446446
new TWEEN.Tween({ tweeningValue: startValue })
447447
.to({ tweeningValue: endValue }, 500)
448448
.onUpdate(function () {
449449
vm.tweeningValue = this.tweeningValue.toFixed(0)
450450
})
451451
.start()
452-
452+
453453
animate()
454454
}
455455
}
@@ -512,14 +512,14 @@ Vue.component('animated-integer', {
512512
requestAnimationFrame(animate)
513513
}
514514
}
515-
515+
516516
new TWEEN.Tween({ tweeningValue: startValue })
517517
.to({ tweeningValue: endValue }, 500)
518518
.onUpdate(function () {
519519
vm.tweeningValue = this.tweeningValue.toFixed(0)
520520
})
521521
.start()
522-
522+
523523
animate()
524524
}
525525
}
@@ -539,4 +539,15 @@ new Vue({
539539
</script>
540540
{% endraw %}
541541

542-
Dans les composants enfants, nous pouvons utiliser n'importe quelle combinaison de stratégies de transition qui ont été abordées dans cette page, ainsi que celles offertes par le [système intégré de transition](transitions.html) de Vue. En utilisant les deux, il existe très peu de limites à ce qui peut être accompli.
542+
<p>Dans les composants enfants, nous pouvons utiliser n'importe quelle combinaison de stratégies de transition qui ont été abordées dans cette page, ainsi que celles offertes par le [système intégré de transition](transitions.html) de Vue. En utilisant les deux, il existe très peu de limites à ce qui peut être accompli.</p><p class="tip">**La partie suivante est 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/vuejs.org).**</p>
543+
544+
## Bringing Designs to Life
545+
546+
To animate, by one definition, means to bring to life. Unfortunately, when designers create icons, logos, and mascots, they're usually delivered as images or static SVGs. So although GitHub's octocat, Twitter's bird, and many other logos resemble living creatures, they don't really seem alive.
547+
548+
Vue can help. Since SVGs are just data, we only need examples of what these creatures look like when excited, thinking, or alarmed. Then Vue can help transition between these states, making your welcome pages, loading indicators, and notifications more emotionally compelling.
549+
550+
Sarah Drasner demonstrates this in the demo below, using a combination of timed and interactivity-driven state changes:
551+
552+
<p data-height="265" data-theme-id="light" data-slug-hash="YZBGNp" data-default-tab="result" data-user="sdras" data-embed-version="2" data-pen-title="Vue-controlled Wall-E" class="codepen">See the Pen <a href="https://codepen.io/sdras/pen/YZBGNp/">Vue-controlled Wall-E</a> by Sarah Drasner (<a href="https://codepen.io/sdras">@sdras</a>) on <a href="https://codepen.io">CodePen</a>.</p>
553+
<script async src="https://production-assets.codepen.io/assets/embed/ei.js"></script>

src/v2/guide/typescript.md

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,4 +136,64 @@ export default class MyComponent extends Vue {
136136
}
137137
```
138138

139-
Avec cette syntaxe alternative, nos définitions de composant ne sont pas seulement plus courtes, mais TypeScript peut aussi connaître les types de `message` et `onClick` avec des interfaces de déclarations explicites. Cette stratégie peut même vous permettre de gérer des types pour les propriétés calculées, les hooks de cycle de vie et les fonctions de rendu. Pour une utilisation plus détaillée, référez-vous à [la documentation de vue-class-component](https://github.com/vuejs/vue-class-component#vue-class-component).
139+
<p>Avec cette syntaxe alternative, nos définitions de composant ne sont pas seulement plus courtes, mais TypeScript peut aussi connaître les types de `message` et `onClick` avec des interfaces de déclarations explicites. Cette stratégie peut même vous permettre de gérer des types pour les propriétés calculées, les hooks de cycle de vie et les fonctions de rendu. Pour une utilisation plus détaillée, référez-vous à [la documentation de vue-class-component](https://github.com/vuejs/vue-class-component#vue-class-component).</p><p class="tip">**La partie suivante est 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/vuejs.org).**</p>
140+
141+
## Declaring Types of Vue Plugins
142+
143+
Plugins may add to Vue's global/instance properties and component options. In these cases, type declarations are needed to make plugins compile in TypeScript. Fortunately, there's a TypeScript feature to augment existing types called [module augmentation](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation).
144+
145+
For example, to declare an instance property `$myProperty` with type `string`:
146+
147+
``` ts
148+
// 1. Make sure to import 'vue' before declaring augmented types
149+
import Vue from 'vue'
150+
151+
// 2. Specify a file with the types you want to augment
152+
// Vue has the constructor type in types/vue.d.ts
153+
declare module 'vue/types/vue' {
154+
// 3. Declare augmentation for Vue
155+
interface Vue {
156+
$myProperty: string
157+
}
158+
}
159+
```
160+
161+
After including the above code as a declaration file (like `my-property.d.ts`) in your project, you can use `$myProperty` on a Vue instance.
162+
163+
```ts
164+
var vm = new Vue()
165+
console.log(vm.$myProperty) // This will be successfully compiled
166+
```
167+
168+
You can also declare additional global properties and component options:
169+
170+
```ts
171+
import Vue from 'vue'
172+
173+
declare module 'vue/types/vue' {
174+
// Global properties can be declared
175+
// by using `namespace` instead of `interface`
176+
namespace Vue {
177+
const $myGlobal: string
178+
}
179+
}
180+
181+
// ComponentOptions is declared in types/options.d.ts
182+
declare module 'vue/types/options' {
183+
interface ComponentOptions<V extends Vue> {
184+
myOption?: string
185+
}
186+
}
187+
```
188+
189+
The above declarations allow the following code to be compiled:
190+
191+
```ts
192+
// Global property
193+
console.log(Vue.$myGlobal)
194+
195+
// Additional component option
196+
var vm = new Vue({
197+
myOption: 'Hello'
198+
})
199+
```
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<li class="nav-dropdown-container language">
22
<a class="nav-link">Traductions</a><span class="arrow"></span>
33
<ul class="nav-dropdown">
4-
<li><a href="https://cn.vuejs.org/" class="nav-link" target="_blank">中文</a></li>
5-
<li><a href="https://jp.vuejs.org/" class="nav-link" target="_blank">日本語</a></li>
6-
<li><a href="https://kr.vuejs.org/" class="nav-link" target="_blank">한국어</a></li>
7-
<li><a href="https://vuejs.org/" class="nav-link" target="_blank">English</a></li>
8-
<li><a href="https://br.vuejs.org/" class="nav-link" target="_blank">Português</a></li>
9-
<li><a href="https://ru.vuejs.org/" class="nav-link" target="_blank">Русский</a></li>
4+
<li><a href="https://cn.vuejs.org/<%- page.path %>" class="nav-link" target="_blank">中文</a></li>
5+
<li><a href="https://jp.vuejs.org/<%- page.path %>" class="nav-link" target="_blank">日本語</a></li>
6+
<li><a href="https://kr.vuejs.org/<%- page.path %>" class="nav-link" target="_blank">한국어</a></li>
7+
<li><a href="https://vuejs.org/<%- page.path %>" class="nav-link" target="_blank">English</a></li>
8+
<li><a href="https://br.vuejs.org/<%- page.path %>" class="nav-link" target="_blank">Português</a></li>
9+
<li><a href="https://ru.vuejs.org/<%- page.path %>" class="nav-link" target="_blank">Русский</a></li>
1010
</ul>
1111
</li>

0 commit comments

Comments
 (0)