diff --git a/src/v2/guide/components.md b/src/v2/guide/components.md index c456a010e2..8733570949 100644 --- a/src/v2/guide/components.md +++ b/src/v2/guide/components.md @@ -1,18 +1,18 @@ --- -title: Components +title: Composants type: guide order: 11 --- -## What are Components? +## Les composants, qu’est-ce que c’est ? -

**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).**

Components are one of the most powerful features of Vue. They help you extend basic HTML elements to encapsulate reusable code. At a high level, components are custom elements that Vue's compiler attaches behavior to. In some cases, they may also appear as a native HTML element extended with the special `is` attribute. +Les composants sont l'une des plus puissantes fonctionnalités de Vue. Ils vous permettent d'étendre les éléments de base du HTML pour encapsuler du code réutilisable. À un haut niveau, les composants sont des éléments personnalisables auxquels le compilateur de Vue attache un comportement. Dans certains cas, ils peuvent aussi apparaître comme des éléments HTML natifs étendus avec l'attribut spécial `is`. -## Using Components +## Utilisation des composants -### Registration +### Inscription -We've learned in the previous sections that we can create a new Vue instance with: +Nous avons appris dans les sections précédentes que nous pouvions créer une nouvelle instance de Vue avec : ``` js new Vue({ @@ -21,7 +21,7 @@ new Vue({ }) ``` -To register a global component, you can use `Vue.component(tagName, options)`. For example: +Pour enregistrer un composant global, vous pouvez utiliser `Vue.component(tagName, options)`. Par exemple : ``` js Vue.component('my-component', { @@ -29,9 +29,9 @@ Vue.component('my-component', { }) ``` -

Note that Vue does not enforce the [W3C rules](http://www.w3.org/TR/custom-elements/#concepts) for custom tag names (all-lowercase, must contain a hyphen) though following this convention is considered good practice.

+

Notez que Vue ne vous force pas à respecter les [règles du W3C](http://www.w3.org/TR/custom-elements/#concepts) en ce qui concerne les noms de balises personnalisées (tout en minuscules, obligation de contenir un trait d'union) bien que suivre cette convention est considéré comme une bonne pratique.

-Once registered, a component can be used in an instance's template as a custom element, ``. Make sure the component is registered **before** you instantiate the root Vue instance. Here's the full example: +Une fois enregistré, un composant peut être utilisé dans le template d'une instance en tant qu'élément personnalisé, ``. Assurez-vous que le composant soit enregistré **avant** l'instanciation de l'instance racine de Vue. Voici un exemple complet : ``` html
@@ -40,22 +40,22 @@ Once registered, a component can be used in an instance's template as a custom e ``` ``` js -// register +// enregistrer Vue.component('my-component', { - template: '
A custom component!
' + template: '
Un composant personnalisé !
' }) -// create a root instance +// créer une instance racine new Vue({ el: '#example' }) ``` -Which will render: +Ce qui donnera comme rendu : ``` html
-
A custom component!
+
Un composant personnalisé !
``` @@ -65,37 +65,37 @@ Which will render:
{% endraw %} -### Local Registration +### Enregistrement local -You don't have to register every component globally. You can make a component available only in the scope of another instance/component by registering it with the `components` instance option: +Vous n'êtes pas obligé d'enregistrer chaque composant de manière globale. Vous pouvez rendre un composant disponible dans la portée d'un(e) autre composant/instance en l'enregistrant avec l'option `components` lors de l'instanciation : ``` js var Child = { - template: '
A custom component!
' + template: '
Un composant personnalisé !
' } new Vue({ // ... components: { - // will only be available in parent's template + // ne sera disponible que dans le template parent 'my-component': Child } }) ``` -The same encapsulation applies for other registerable Vue features, such as directives. +La même encapsulation s’applique pour les autres fonctionnalités enregistrables de Vue, comme les directives. -### DOM Template Parsing Caveats +### Limitations de l'analyse d'un template à partir du DOM -When using the DOM as your template (e.g. using the `el` option to mount an element with existing content), you will be subject to some restrictions that are inherent to how HTML works, because Vue can only retrieve the template content **after** the browser has parsed and normalized it. Most notably, some elements such as `