-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Traductions de la page "v2/guide/mixins.html" et "v2/guide/single-file-components.md" #10
Changes from all commits
3450a96
43e8de1
a487dfb
6d31263
4c946aa
15187a0
55b7261
017cd6e
d0e61dd
16de468
0373669
6c83c0e
3712eb9
daffaf5
fa5e8d1
72c7f1d
27ad788
3629ab6
0dc42e3
9c3c9ec
f115652
94f57ed
fe716c5
c5153c2
0a700e1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,44 @@ | ||
--- | ||
title: Single File Components | ||
title: Les composants monofichiers | ||
type: guide | ||
order: 19 | ||
--- | ||
|
||
## Introduction | ||
|
||
<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. | ||
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. | ||
|
||
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: | ||
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 : | ||
|
||
- **Global definitions** force unique names for every component | ||
- **String templates** lack syntax highlighting and require ugly slashes for multiline HTML | ||
- **No CSS support** means that while HTML and JavaScript are modularized into components, CSS is conspicuously left out | ||
- **No build step** restricts us to HTML and ES5 JavaScript, rather than preprocessors like Pug (formerly Jade) and Babel | ||
- **Les définitions globales** forcent à avoir un nom unique pour chaque composant | ||
- **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. | ||
- **L'absence de support pour le CSS** signifie que le CSS ne peut pas être modularisé comme HTML et JavaScript | ||
- **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). | ||
|
||
All of these are solved by **single-file components** with a `.vue` extension, made possible with build tools such as Webpack or Browserify. | ||
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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ici il y a un décalage de ligne par rapport au fichier original. Il faut bien veiller à garder les mêmes saut de ligne et nombre de ligne que l'original pour s'y retrouver dans le futur quand les fichiers originaux vont changer. C'est pourquoi le texte expliquant que la version fr est en cours est accolé à la première ligne. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. oups pardon tu fais bien de le préciser, je n'avais pas fait attention à ça |
||
|
||
Here's a simple example of a file we'll call `Hello.vue`: | ||
Voici un exemple simple de fichier que nous appellerons `Hello.vue` : | ||
|
||
<img src="/images/vue-component.png" style="display: block; margin: 30px auto"> | ||
|
||
Now we get: | ||
Maintenant nous avons : | ||
|
||
- [Complete syntax highlighting](https://github.com/vuejs/awesome-vue#syntax-highlighting) | ||
- [CommonJS modules](https://webpack.github.io/docs/commonjs.html) | ||
- [Component-scoped CSS](https://github.com/vuejs/vue-loader/blob/master/docs/en/features/scoped-css.md) | ||
- [Une coloration syntaxique complète](https://github.com/vuejs/awesome-vue#syntax-highlighting) | ||
- [Des modules CommonJS](https://webpack.github.io/docs/commonjs.html) | ||
- [Du CSS à la portée limitée au composant](https://github.com/vuejs/vue-loader/blob/master/docs/en/features/scoped-css.md) | ||
|
||
As promised, we can also use preprocessors such as Pug, Babel (with ES2015 modules), and Stylus for cleaner and more feature-rich components. | ||
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. | ||
|
||
<img src="/images/vue-component-with-preprocessors.png" style="display: block; margin: 30px auto"> | ||
|
||
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. | ||
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. | ||
|
||
### What About Separation of Concerns? | ||
### Qu'en est-il de la séparation des préoccupations (Separation of concerns) ? | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Le problème pour moi n'est pas tant de comprendre que « séparation des préoccupations » est la traduction de « Separation of concerns » car c'est très clair. Le problème pour moi est que « séparation des préoccupations » (même si le terme à déjà été traduit comme ceci) donne l'impression qu'on a des soucis, qu'on s'inquiète à propos de quelque chose. Hors ici, les préoccupations font bien référence à la séparation du HTML/CSS/JavaScript soit la séparation des languages, ou rôle en terme factuel et non émotionnel. Bref tout ça pour dire que soit on met Qu'en est-il de la séparation des rôles (Separation of concerns)ou Qu'en est-il de la séparation des langages (Separation of concerns)mais que si on garde la traduction répandu (et surtout mot à mot) comme nous l'avons décidé, garder le terme entre parenthèse n'a pas d'utilité. Soit seulement Qu'en est-il de la séparation des préoccupationsexemple pour : Les composants monofichiersnous n'avons pas mis entre parenthèse la traduction car c'est la plus répandu. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Salut ! je suis d'accord que le mot préoccupations est un peu malheureux. Attention, "concern" ne se limite pas au langage, et on peut très bien avoir une "separation of concerns" au sein d'un même langage ( https://en.wikipedia.org/wiki/Separation_of_concerns ) . Toutefois séparation des rôles n'est jamais utilisé, séparations des responsabilités presque jamais (c'était ma proposition) contrairement à séparation des préoccupations; c'était l'unique motif de notre choix; du coup je pensais qu'on restait là dessus. (pour ma part je trouve que "séparation des responsabilités" est le plus adapté en terme de sens strict et aussi parce qu'on trouve parfois ce mot échangés avec concern, comme ici : https://en.wikipedia.org/wiki/Single_responsibility_principle ) |
||
|
||
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. | ||
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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ce que je comprends ici c'est que la séparation des éléments par rôle ou techno n'est pas identique à la séparation en fichier. C-à-d qu'au lieu de faire un fichier, HTML, CSS et JS il était plus intéressant de tout regrouper dans un fichier et de faire différent fichier en terme de composant indépendant. Je pense qu'une traduction possible est donc
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "séparation des préoccupations" est la traduction la plus répandue de "Separation of Concerns". Mais comme évoqué en première relecture, seule l'expression anglaise est vraiment connue et comprise, c'est pourquoi les ressources françaises ne traduisent pas tout le temps. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sincèrement "séparation des préoccupations" c'est vraiment zarb mais @sylvainpolletvillard a raison : il tombe souvent dans les traductions FR en informatique effectivement donc gardons "séparation des préoccupations". There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. je trouve aussi la traduction un peu chelou mais avec le rappel des "separations of concerns" on est pas perdu c'est l'essentiel |
||
|
||
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. | ||
|
||
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: | ||
|
||
``` html | ||
<!-- my-component.vue --> | ||
|
@@ -48,22 +49,23 @@ Even if you don't like the idea of Single-File Components, you can still leverag | |
<style src="./my-component.css"></style> | ||
``` | ||
|
||
## Getting Started | ||
## Bien commencer | ||
|
||
### Pour les utilisateurs qui ne connaissent pas les systemes de build de modules en JavaScript | ||
|
||
### For Users New to Module Build Systems in JavaScript | ||
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à : | ||
|
||
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: | ||
- **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_. | ||
|
||
- **Node Package Manager (NPM)**: Read the [Getting Started guide](https://docs.npmjs.com/getting-started/what-is-npm) through section _10: Uninstalling global packages_. | ||
- **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. | ||
|
||
- **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. | ||
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 ! | ||
|
||
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! | ||
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). | ||
|
||
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). | ||
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). | ||
|
||
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). | ||
### Pour les utilisateurs avancés | ||
|
||
### For Advanced Users | ||
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). | ||
|
||
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). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
« hook » est traduit par « point d'ancrage » dans #7
Je pense approprié de traduire « hook functions » par « fonctions d'ancrage »
soit
« Par exemple, les fonctions d'ancrage avec le même nom »
« De plus, les points d'ancrage des mixins seront appelés avant les points d'ancrage du composant: »
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
J'ai appris hier que "hook" s'était francisé : https://fr.wikipedia.org/wiki/Hook_(informatique)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On garde Hook