Skip to content

Commit 433762c

Browse files
Merge pull request #10 from nyl-auster/master
Traductions de la page "v2/guide/mixins.html" et "v2/guide/single-file-components.md"
2 parents e6adbd3 + 0a700e1 commit 433762c

File tree

2 files changed

+47
-45
lines changed

2 files changed

+47
-45
lines changed

src/v2/guide/mixins.md

+17-17
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ type: guide
44
order: 17
55
---
66

7-
## Basics
7+
## Bases
88

9-
<p class="tip">**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/vuejs.org).**</p>Mixins are a flexible way to distribute reusable functionalities for Vue components. A mixin object can contain any component options. When a component uses a mixin, all options in the mixin will be "mixed" into the component's own options.
9+
Les mixins offrent une manière flexible de créer des fonctionnalités réutilisables pour les composants de Vue. Un objet mixin peut contenir toute option valide pour un composant. Quand un composant utilise un mixin, toutes les options du mixin seront "fusionnées" avec les options du composant.
1010

11-
Example:
11+
Exemple:
1212

1313
``` js
14-
// define a mixin object
14+
// définir un objet mixin
1515
var myMixin = {
1616
created: function () {
1717
this.hello()
@@ -23,17 +23,17 @@ var myMixin = {
2323
}
2424
}
2525

26-
// define a component that uses this mixin
26+
// définition d'un composant qui utilise ce mixin
2727
var Component = Vue.extend({
2828
mixins: [myMixin]
2929
})
3030

3131
var component = new Component() // -> "hello from mixin!"
3232
```
3333

34-
## Option Merging
34+
## Fusion des options
3535

36-
When a mixin and the component itself contain overlapping options, they will be "merged" using appropriate strategies. For example, hook functions with the same name are merged into an array so that all of them will be called. In addition, mixin hooks will be called **before** the component's own hooks:
36+
Quand un mixin et un composant définissent les mêmes options, elles seront fusionnées en utilisant la stratégie appropriée. Par exemple, les fonctions de hook avec le même nom seront fusionnées dans un tableau afin qu'elles soient toutes appelées. De plus, les hooks des mixins seront appelés **avant** les hooks du composant:
3737

3838
``` js
3939
var mixin = {
@@ -53,7 +53,7 @@ new Vue({
5353
// -> "component hook called"
5454
```
5555

56-
Options that expect object values, for example `methods`, `components` and `directives`, will be merged into the same object. The component's options will take priority when there are conflicting keys in these objects:
56+
Les options qui attendent un objet, par exemple `methods`, `components` et `directives`, seront fusionnées dans le même objet. Les options du composant auront la priorité en cas de conflit sur une ou plusieurs clés de ces objets.
5757

5858
``` js
5959
var mixin = {
@@ -84,14 +84,14 @@ vm.bar() // -> "bar"
8484
vm.conflicting() // -> "from self"
8585
```
8686

87-
Note that the same merge strategies are used in `Vue.extend()`.
87+
Notez que les mêmes stratégies de fusion sont utilisées par `Vue.extend()`.
8888

89-
## Global Mixin
89+
## Mixin global
9090

91-
You can also apply a mixin globally. Use caution! Once you apply a mixin globally, it will affect **every** Vue instance created afterwards. When used properly, this can be used to inject processing logic for custom options:
91+
Vous pouvez aussi appliquer un mixin de manière globale. À utiliser avec prudence ! Une fois que vous appliquez un mixin globalement, il modifiera **toutes** les instances de vues créées ensuite. Bien utilisé, cela peut être exploité pour injecter une logique de traitement pour des options personnalisées :
9292

9393
``` js
94-
// inject a handler for `myOption` custom option
94+
// injection d'une fonction pour l'option personnalisée `myOption`
9595
Vue.mixin({
9696
created: function () {
9797
var myOption = this.$options.myOption
@@ -107,26 +107,26 @@ new Vue({
107107
// -> "hello!"
108108
```
109109

110-
<p class="tip">Use global mixins sparsely and carefully, because it affects every single Vue instance created, including third party components. In most cases, you should only use it for custom option handling like demonstrated in the example above. It's also a good idea to ship them as [Plugins](plugins.html) to avoid duplicate application.</p>
110+
<p class="tip">Utilisez les mixins globaux prudemment et rarement, parce qu'ils affectent chacune des Vue créées, y compris celles des librairies tierces. Dans la plupart des cas, vous devriez uniquement vous en servir pour la gestion des options personnalisées comme illustré dans l'exemple ci-dessus. C'est aussi une bonne idée de les encapsuler dans des [Plugins](plugins.html) pour éviter de les appliquer plusieurs fois par erreur. </p>
111111

112-
## Custom Option Merge Strategies
112+
## Stratégie de fusion des options personnalisées
113113

114-
When custom options are merged, they use the default strategy, which simply overwrites the existing value. If you want a custom option to be merged using custom logic, you need to attach a function to `Vue.config.optionMergeStrategies`:
114+
Quand les options personnalisées sont fusionnées, elles utilisent la stratégie par défaut, qui est simplement d'écraser la valeur existante. Si vous souhaitez appliquer une logique personnalisée pour la fusion d'une option personnalisée, vous devez attacher une nouvelle fonction à `Vue.config.optionMergeStrategies`:
115115

116116
``` js
117117
Vue.config.optionMergeStrategies.myOption = function (toVal, fromVal) {
118118
// return mergedVal
119119
}
120120
```
121121

122-
For most object-based options, you can simply use the same strategy used by `methods`:
122+
Pour la plupart des options qui attendent des objets, vous pouvez simplement utiliser la stratégie de fusion utilisée par `methods`:
123123

124124
``` js
125125
var strategies = Vue.config.optionMergeStrategies
126126
strategies.myOption = strategies.methods
127127
```
128128

129-
A more advanced example can be found on [Vuex](https://github.com/vuejs/vuex)'s 1.x merging strategy:
129+
Un exemple plus avancé peut être trouvé dans la stratégie de fusion de [Vuex](https://github.com/vuejs/vuex) 1.x:
130130

131131
``` js
132132
const merge = Vue.config.optionMergeStrategies.computed

src/v2/guide/single-file-components.md

+30-28
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,44 @@
11
---
2-
title: Single File Components
2+
title: Les composants monofichiers
33
type: guide
44
order: 19
55
---
66

77
## Introduction
88

9-
<p class="tip">**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/vuejs.org).**</p>In many Vue projects, global components will be defined using `Vue.component`, followed by `new Vue({ el: '#container' })` to target a container element in the body of every page.
9+
Dans beaucoup de projets Vue, des composants globaux seront définis en utilisant `Vue.component`, suivi de `new Vue({ el: '#container' })` pour cibler un élément conteneur dans le corps de chaque page.
1010

11-
This can work very well for small to medium-sized projects, where JavaScript is only used to enhance certain views. In more complex projects however, or when your frontend is entirely driven by JavaScript, these disadvantages become apparent:
11+
Cela peut très bien fonctionner pour des petits projets ou des projets de taille moyenne, pour lesquels JavaScript est utilisé uniquement pour améliorer certaines vues. Cependant, pour des projets plus complexes, ou bien quand votre front-end est entièrement généré par JavaScript, des désavantages se manifestent :
1212

13-
- **Global definitions** force unique names for every component
14-
- **String templates** lack syntax highlighting and require ugly slashes for multiline HTML
15-
- **No CSS support** means that while HTML and JavaScript are modularized into components, CSS is conspicuously left out
16-
- **No build step** restricts us to HTML and ES5 JavaScript, rather than preprocessors like Pug (formerly Jade) and Babel
13+
- **Les définitions globales** forcent à avoir un nom unique pour chaque composant
14+
- **Les templates sous forme de chaînes de caractères** ne bénéficient pas de la coloration syntaxique et requièrent l'usage de slashes disgracieux pour le HTML multiligne.
15+
- **L'absence de support pour le CSS** signifie que le CSS ne peut pas être modularisé comme HTML et JavaScript
16+
- **L'absence d'étape de build** nous restreint au HTML et à JavaScript ES5, sans pouvoir utiliser des préprocesseurs tels que Babel ou Pug (anciennement Jade).
1717

18-
All of these are solved by **single-file components** with a `.vue` extension, made possible with build tools such as Webpack or Browserify.
18+
Tous ces désavantages sont résolus par les **composants monofichiers** avec une extension `.vue`, rendus possibles par les outils de build tels que Webpack ou Browserify.
1919

20-
Here's a simple example of a file we'll call `Hello.vue`:
20+
Voici un exemple simple de fichier que nous appellerons `Hello.vue` :
2121

2222
<img src="/images/vue-component.png" style="display: block; margin: 30px auto">
2323

24-
Now we get:
24+
Maintenant nous avons :
2525

26-
- [Complete syntax highlighting](https://github.com/vuejs/awesome-vue#syntax-highlighting)
27-
- [CommonJS modules](https://webpack.github.io/docs/commonjs.html)
28-
- [Component-scoped CSS](https://github.com/vuejs/vue-loader/blob/master/docs/en/features/scoped-css.md)
26+
- [Une coloration syntaxique complète](https://github.com/vuejs/awesome-vue#syntax-highlighting)
27+
- [Des modules CommonJS](https://webpack.github.io/docs/commonjs.html)
28+
- [Du CSS à la portée limitée au composant](https://github.com/vuejs/vue-loader/blob/master/docs/en/features/scoped-css.md)
2929

30-
As promised, we can also use preprocessors such as Pug, Babel (with ES2015 modules), and Stylus for cleaner and more feature-rich components.
30+
Et comme promis, nous pouvons aussi utiliser des préprocesseurs tels que Pug, Babel (avec les modules ES2015), et Stylus pour obtenir des composants plus lisibles et plus riches en fonctionnalités.
3131

3232
<img src="/images/vue-component-with-preprocessors.png" style="display: block; margin: 30px auto">
3333

34-
These specific languages are just examples. You could just as easily use Bublé, TypeScript, SCSS, PostCSS - or whatever other preprocessors that help you be productive. If using Webpack with `vue-loader`, it also has first-class support for CSS Modules.
34+
Ces langages spécifiques ne sont que des exemples; vous pourriez tout aussi aisément utiliser Bublé, Typescript, SCSS, PostCSS - ou tout autre préprocesseur qui vous aide à être productif. Si vous utilisez Webpack avec `vue-loader`, vous aurez aussi un outil de premier choix pour les modules CSS.
3535

36-
### What About Separation of Concerns?
36+
### Qu'en est-il de la séparation des préoccupations (Separation of concerns) ?
3737

38-
One important thing to note is that **separation of concerns is not equal to separation of file types.** In modern UI development, we have found that instead of dividing the codebase into three huge layers that interweaves with one another, it makes much more sense to divide them into loosely-coupled components and compose them. Inside a component, its template, logic and styles are inherently coupled, and collocating them actually makes the component more cohesive and maintainable.
38+
Une chose importante à souligner est que **la séparation des préoccupations n'est pas identique à la séparation des fichiers**. Dans le développement des interfaces utilisateur modernes, nous avons constaté que plutôt que de diviser tout notre code en trois grosses couches distinctes inter-dépendantes, il était plus intuitif de le diviser en petits composants faiblement couplés, et de les combiner. Au sein d'un composant, son template, sa logique et ses styles sont intrinsèquement couplés, et les réunir rend en réalité le composant plus cohérent et facile à maintenir.
39+
40+
Si vous n'aimez pas l'idée des composants monofichiers, vous pouvez toujours tirer parti du rechargement à chaud et la précompilation pour mettre le CSS et le JavaScript dans des fichiers séparés.
3941

40-
Even if you don't like the idea of Single-File Components, you can still leverage its hot-reloading and pre-compilation features by separating your JavaScript and CSS into separate files:
4142

4243
``` html
4344
<!-- my-component.vue -->
@@ -48,22 +49,23 @@ Even if you don't like the idea of Single-File Components, you can still leverag
4849
<style src="./my-component.css"></style>
4950
```
5051

51-
## Getting Started
52+
## Bien commencer
53+
54+
### Pour les utilisateurs qui ne connaissent pas les systemes de build de modules en JavaScript
5255

53-
### For Users New to Module Build Systems in JavaScript
56+
Avec les composants `.vue`, nous entrons de plain-pied dans le domaine des applications JavaScript avancées. Cela implique d'apprendre à utiliser quelques nouveaux outils si vous ne les connaissez pas déjà :
5457

55-
With `.vue` components, we're entering the realm of advanced JavaScript applications. That means learning to use a few additional tools if you haven't already:
58+
- **Node Package Manager (NPM)**: Lisez le guide NPM [Getting Started guide](https://docs.npmjs.com/getting-started/what-is-npm) section _10: Uninstalling global packages_.
5659

57-
- **Node Package Manager (NPM)**: Read the [Getting Started guide](https://docs.npmjs.com/getting-started/what-is-npm) through section _10: Uninstalling global packages_.
60+
- **JavaScript moderne avec ES2015/16**: Lisez le guide Babel [Learn ES2015 guide](https://babeljs.io/docs/learn-es2015/). Vous n'avez pas besoin de mémoriser chacune des fonctionnalités maintenant, mais gardez cette page en référence pour pouvoir y revenir.
5861

59-
- **Modern JavaScript with ES2015/16**: Read through Babel's [Learn ES2015 guide](https://babeljs.io/docs/learn-es2015/). You don't have to memorize every feature right now, but keep this page as a reference you can come back to.
62+
Une fois que vous aurez pris une journée pour vous plonger dans ces ressources, nous vous recommandons d'essayer le template de projet [webpack-simple](https://github.com/vuejs-templates/webpack-simple). Suivez les instructions et vous devriez avoir en un clin d'oeil un projet Vue avec des composants `.vue` , ES2015 et le rechargement à chaud !
6063

61-
After you've taken a day to dive into these resources, we recommend checking out the [webpack-simple](https://github.com/vuejs-templates/webpack-simple) template. Follow the instructions and you should have a Vue project with `.vue` components, ES2015 and hot-reloading running in no time!
64+
Ce template de projet utilise [Webpack](https://webpack.github.io/), un empaqueteur de modules qui prend des "modules" et les empaquette dans votre application finale. Pour en apprendre plus sur Webpack, [cette vidéo](https://www.youtube.com/watch?v=WQue1AN93YU) est une bonne introduction. Une fois que vous aurez les bases, vous pourrez aussi parcourir [ce cours sur Egghead.io](https://egghead.io/courses/using-webpack-for-production-JavaScript-applications).
6265

63-
The template uses [Webpack](https://webpack.github.io/), a module bundler that takes a number of "modules" and then bundles them into your final application. To learn more about Webpack itself, [this video](https://www.youtube.com/watch?v=WQue1AN93YU) offers a good intro. Once you get past the basics, you might also want to check out [this advanced Webpack course on Egghead.io](https://egghead.io/courses/using-webpack-for-production-javascript-applications).
66+
Dans Webpack, chaque module peut être transformé par un "loader" avant d'être inclus dans le paquet, et Vue offre le plugin [vue-loader](https://github.com/vuejs/vue-loader) pour traduire les composants monofichiers `.vue`. Le template de projet [webpack-simple](https://github.com/vuejs-templates/webpack-simple) a déjà tout configuré pour vous, mais si vous souhaitez en apprendre plus sur le fonctionnement des composants `.vue` avec Webpack, vous pouvez lire [la documentation de vue-loader](https://vue-loader.vuejs.org).
6467

65-
In Webpack, each module can be transformed by a "loader" before being included in the bundle, and Vue offers the [vue-loader](https://github.com/vuejs/vue-loader) plugin to take care of translating `.vue` single-file components. The [webpack-simple](https://github.com/vuejs-templates/webpack-simple) template has already set up everything for you, but if you'd like to learn more about how `.vue` components work with Webpack, you can read [the docs for vue-loader](https://vue-loader.vuejs.org).
68+
### Pour les utilisateurs avancés
6669

67-
### For Advanced Users
70+
Que vous préfériez Webpack ou Browserify, nous avons des templates documentés à la fois pour les projets simples et les projets plus complexes. Nous vous recommandons d'explorer [github.com/vuejs-templates](https://github.com/vuejs-templates), de choisir un template qui vous convient et de suivre les instructions du README pour générer un nouveau projet avec [vue-cli](https://github.com/vuejs/vue-cli).
6871

69-
Whether you prefer Webpack or Browserify, we have documented templates for both simple and more complex projects. We recommend browsing [github.com/vuejs-templates](https://github.com/vuejs-templates), picking a template that's right for you, then following the instructions in the README to generate a new project with [vue-cli](https://github.com/vuejs/vue-cli).

0 commit comments

Comments
 (0)