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
* Update components-registration.md
Quelques mises à jour sur ce fichier
* Corrections des remarques du PR #145
* Mise à jour de la partie "Name Casing"
* Mise à jour de la partie "Global Registration"
* Update components-registration.md
* MAJ partielle de la partie systèmes de module
* MAJ de la deuxième partie systèmes de module
* Abréviation de par exemple en ex.
* Correction fautes de frappe
* Mise à jours après les reviews
* Rectification d'erreurs
* Corrections après reviews de rspt
* Correction d'orthographe du mot chaîne
* Changement de du mot "chaîne" en "chaine"
* Changer "Avec" en "En" avant "PascalCase | kebab-case"
> This page assumes you've already read the [Components Basics](components.html). Read that first if you are new to components.
7
+
> Cette page suppose que vous avez déjà lu les principes de base des [composants](components.html). Lisez cela en premier si vous êtes nouveau aux composants.
8
8
9
-
## Component Names
9
+
## Les noms de composant
10
10
11
-
<p>Cette page est en cours de traduction. Pour nous aider, vous pouvez participer sur <ahref="https://github.com/vuejs-fr/vuejs.org"target="_blank">le dépôt GitHub dédié de Vuejs-FR</a>.</p><p>When registering a component, it will always be given a name. For example, in the global registration we've seen so far:</p>
11
+
Lors de la création de composants, il faudra toujours spécifier un nom. Par exemple, la déclaration se fera comme suit :
12
12
13
13
```js
14
14
Vue.component('my-component-name', { /* ... */ })
15
15
```
16
16
17
-
The component's name is the first argument of`Vue.component`.
17
+
Le nom du composant est le premier argument de`Vue.component`.
18
18
19
-
The name you give a component may depend on where you intend to use it. When using a component directly in the DOM (as opposed to in a string template or [single-file component](single-file-components.html)), we strongly recommend following the [W3C rules](https://www.w3.org/TR/custom-elements/#concepts)for custom tag names (all-lowercase, must contain a hyphen). This helps you avoid conflicts with current and future HTML elements.
19
+
Le nom que vous donnez à un composant peut dépendre de l'endroit où vous avez l'intention de l'utiliser. Lorsque vous utilisez un composant directement dans le DOM (par opposition à une chaine ou un [composant monofichiers](single-file-components.html)), nous vous recommandons fortement de suivre [les règles du W3C](https://www.w3.org/TR/custom-elements/#concepts)pour les noms de balises personnalisés (tout en minuscules, contenir un trait d'union). Cela vous permet d'éviter les conflits avec les éléments HTML actuels et futurs.
20
20
21
-
You can see other recommendations for component names in the [Style Guide](../style-guide/#Base-component-names-strongly-recommended).
21
+
Vous pouvez voir d'autres recommandations pour les noms de composants dans le guide des [Conventions](../style-guide/#Base-component-names-strongly-recommended).
22
22
23
-
### Name Casing
23
+
### La casse des noms
24
24
25
-
You have two options when defining component names:
25
+
Vous avez deux options pour définir vos noms de composant :
26
26
27
-
#### With kebab-case
27
+
#### En kebab-case
28
28
29
29
```js
30
30
Vue.component('my-component-name', { /* ... */ })
31
31
```
32
32
33
-
When defining a component with kebab-case, you must also use kebab-case when referencing its custom element, such as in`<my-component-name>`.
33
+
Lors de la définition d'un composant en kebab-case, vous devez également utiliser kebab-case lors du référencement de l'élément, comme ceci`<my-component-name>`.
34
34
35
-
#### With PascalCase
35
+
#### En PascalCase
36
36
37
37
```js
38
38
Vue.component('MyComponentName', { /* ... */ })
39
39
```
40
40
41
-
When defining a component with PascalCase, you can use either case when referencing its custom element. That means both`<my-component-name>`and`<MyComponentName>`are acceptable. Note, however, that only kebab-case names are valid directly in the DOM (i.e. non-string templates).
41
+
Lors de la définition d'un composant en PascalCase, vous pouvez utiliser l'un ou l'autre cas lors du référencement de l'élément. Cela signifie que`<my-component-name>`et`<MyComponentName>`sont acceptables. À noter, cependant, que seuls les noms en kebab-case sont directement valides dans le DOM (c.-à-d. la forme non-chaine).
42
42
43
-
## Global Registration
43
+
## Création globale
44
44
45
-
So far, we've only created components using `Vue.component`:
45
+
Jusque là, nous avons créé des composants seulement avec la manière suivante : `Vue.component` :
46
46
47
47
```js
48
48
Vue.component('my-component-name', {
49
49
// ... options ...
50
50
})
51
51
```
52
52
53
-
These components are**globally registered**. That means they can be used in the template of any root Vue instance (`new Vue`) created after registration. For example:
53
+
Ces composants sont**enregistrés globalement**. Cela signifie qu'ils peuvent être utilisés dans le template de n'importe quelle instance Vue (`new Vue`) créée après. Par exemple :
54
54
55
55
```js
56
56
Vue.component('component-a', { /* ... */ })
@@ -68,21 +68,21 @@ new Vue({ el: '#app' })
68
68
</div>
69
69
```
70
70
71
-
This even applies to all subcomponents, meaning all three of these components will also be available _inside each other_.
71
+
Cela s'applique même à tous les sous-composants, ce qui signifie que ces trois composants seront également disponibles _l'un dans l'autre_.
72
72
73
-
## Local Registration
73
+
## Création locale
74
74
75
-
Global registration often isn't ideal. For example, if you're using a build system like Webpack, globally registering all components means that even if you stop using a component, it could still be included in your final build. This unnecessarily increases the amount of JavaScript your users have to download.
75
+
La création globale n'est souvent pas idéale. Par exemple, si vous utilisez un système de build comme webpack, la création globale de composants fait que même si vous arrêtez d'utiliser un composant, il peut toujours être inclus dans votre build final. Cela augmente inutilement la quantité de JavaScript que vos utilisateurs doivent télécharger.
76
76
77
-
In these cases, you can define your components as plain JavaScript objects:
77
+
Dans ce cas, vous pouvez définir vos composants en tant qu'objets JavaScript simples :
78
78
79
79
```js
80
80
var ComponentA = { /* ... */ }
81
81
var ComponentB = { /* ... */ }
82
82
var ComponentC = { /* ... */ }
83
83
```
84
84
85
-
Then define the components you'd like to use in a`components`option:
85
+
Puis définissez les composants que vous souhaitez utiliser dans l'option`components`:
86
86
87
87
```js
88
88
newVue({
@@ -94,9 +94,9 @@ new Vue({
94
94
})
95
95
```
96
96
97
-
For each property in the`components` object, the key will be the name of the custom element, while the value will contain the options object for the component.
97
+
Pour chaque propriété de l'objet`components`, la clé sera le nom de l'élément personnalisé, tandis que la valeur contiendra l'objet d'options du composant.
98
98
99
-
Note that**locally registered components are _not_ also available in subcomponents**. For example, if you wanted `ComponentA`to be available in `ComponentB`, you'd have to use:
99
+
Notez que**les composants créés localement ne sont _pas_ disponibles dans les sous-composants**. Par exemple, si vous voulez que `ComponentA`soit disponible dans `ComponentB`, vous devez utiliser :
100
100
101
101
```js
102
102
var ComponentA = { /* ... */ }
@@ -109,7 +109,7 @@ var ComponentB = {
109
109
}
110
110
```
111
111
112
-
Or if you're using ES2015 modules, such as through Babel and Webpack, that might look more like:
112
+
Ou si vous utilisez des modules ES2015, tels que Babel et webpack, cela pourrait plus ressembler à :
113
113
114
114
```js
115
115
importComponentAfrom'./ComponentA.vue'
@@ -122,20 +122,20 @@ export default {
122
122
}
123
123
```
124
124
125
-
Note that in ES2015+, placing a variable name like `ComponentA`inside an object is shorthand for `ComponentA: ComponentA`, meaning the name of the variable is both:
125
+
Notez que dans ES2015+, placer un nom de variable comme `ComponentA`dans un objet est un raccourci à `ComponentA: ComponentA`, signifiant que le nom de la variable est à la fois :
126
126
127
-
-the custom element name to use in the template, and
128
-
-the name of the variable containing the component options
127
+
-le nom de l'élément personnalisé à utiliser dans le template et
128
+
-le nom de la variable contenant les options du composant
129
129
130
-
## Module Systems
130
+
## Systèmes de module
131
131
132
-
If you're not using a module system with `import`/`require`, you can probably skip this section for now. If you are, we have some special instructions and tips just for you.
132
+
Si vous n'utilisez pas un système de module avec `import`/`require`, vous pouvez probablement ignorer cette section pour l'instant. Si oui, nous avons quelques instructions spéciales et conseils pour vous.
133
133
134
-
### Local Registration in a Module System
134
+
### Création locale dans un système de module
135
135
136
-
If you're still here, then it's likely you're using a module system, such as with Babel and Webpack. In these cases, we recommend creating a `components` directory, with each component in its own file.
136
+
Si vous êtes toujours là, il est probable que vous utilisiez un système de modules, comme avec Babel et webpack. Dans ces cas, nous recommandons de créer un répertoire `components`, avec chaque composant dans son propre fichier.
137
137
138
-
Then you'll need to import each component you'd like to use, before you locally register it. For example, in a hypothetical `ComponentB.js`or`ComponentB.vue`file:
138
+
Ensuite, vous devrez importer chaque composant que vous souhaitez utiliser avant de l'enregistrer localement. Par exemple, dans un fichier hypothétique `ComponentB.js`ou`ComponentB.vue` :
139
139
140
140
```js
141
141
importComponentAfrom'./ComponentA'
@@ -150,13 +150,13 @@ export default {
150
150
}
151
151
```
152
152
153
-
Now both`ComponentA`and`ComponentC`can be used inside `ComponentB`'s template.
153
+
Maintenant, et`ComponentA`et`ComponentC`peuvent être utilisés dans le template du composant `ComponentB`.
154
154
155
-
### Automatic Global Registration of Base Components
155
+
### Enregistrement global automatique des composants de base
156
156
157
-
Many of your components will be relatively generic, possibly only wrapping an element like an input or a button. We sometimes refer to these as [base components](../style-guide/#Base-component-names-strongly-recommended) and they tend to be used very frequently across your components.
157
+
La plupart de vos composants seront relativement génériques, ce qui ne fera qu'englober un élément comme un champ ou un bouton. Nous nous référons parfois à ces [composants de base](../style-guide/#Base-de-nom-de-composant-fortement-recommande) et ils ont tendance à être utilisés très fréquemment à travers vos composants.
158
158
159
-
The result is that many components may include long lists of base components:
159
+
Le résultat est que de nombreux composants peuvent inclure de longues listes de composants de base :
160
160
161
161
```js
162
162
importBaseButtonfrom'./BaseButton.vue'
@@ -172,7 +172,7 @@ export default {
172
172
}
173
173
```
174
174
175
-
Just to support relatively little markup in a template:
175
+
Juste pour supporter relativement peu de balise dans un template:
176
176
177
177
```html
178
178
<BaseInput
@@ -184,43 +184,43 @@ Just to support relatively little markup in a template:
184
184
</BaseButton>
185
185
```
186
186
187
-
Fortunately, if you're using Webpack (or[Vue CLI 3+](https://github.com/vuejs/vue-cli), which uses Webpack internally), you can use`require.context`to globally register only these very common base components. Here's an example of the code you might use to globally import base components in your app's entry file (e.g.`src/main.js`):
187
+
Heureusement, si vous utilisez webpack (ou[Vue CLI 3+](https://github.com/vuejs/vue-cli), qui utilise webpack en interne), vous pouvez utiliser`require.context`pour enregistrer globalement précisément ces composants de base très courants. Voici un exemple de code que vous pouvez utiliser pour importer globalement des composants de base dans le fichier d'entrée de votre application. (ex.`src/main.js`):
188
188
189
189
```js
190
190
importVuefrom'vue'
191
191
importupperFirstfrom'lodash/upperFirst'
192
192
importcamelCasefrom'lodash/camelCase'
193
193
194
194
constrequireComponent=require.context(
195
-
//The relative path of the components folder
195
+
//Le chemin relatif du dossier composants
196
196
'./components',
197
-
//Whether or not to look in subfolders
197
+
//Suivre ou non les sous-dossiers
198
198
false,
199
-
//The regular expression used to match base component filenames
199
+
//L'expression régulière utilisée pour faire concorder les noms de fichiers de composant de base
200
200
/Base[A-Z]\w+\.(vue|js)$/
201
201
)
202
202
203
203
requireComponent.keys().forEach(fileName=> {
204
-
//Get component config
204
+
//Récupérer la configuration du composent
205
205
constcomponentConfig=requireComponent(fileName)
206
206
207
-
//Get PascalCase name of component
207
+
//Récupérer le nom du composent en PascalCase
208
208
constcomponentName=upperFirst(
209
209
camelCase(
210
-
//Strip the leading `'./` and extension from the filename
210
+
//Enlever la chaine `'./` et l'extension du nom de fichier
211
211
fileName.replace(/^\.\/(.*)\.\w+$/, '$1')
212
212
)
213
213
)
214
214
215
-
//Register component globally
215
+
//Créer un composant global
216
216
Vue.component(
217
217
componentName,
218
-
//Look for the component options on `.default`, which will
219
-
//exist if the component was exported with `export default`,
220
-
//otherwise fall back to module's root.
218
+
//Chercher les options du composant dans `.default`, qui
219
+
//existera si le composant a été exporté avec `export default`,
220
+
//sinon revenez à la racine du module.
221
221
componentConfig.default|| componentConfig
222
222
)
223
223
})
224
224
```
225
225
226
-
Remember that **global registration must take place before the root Vue instance is created (with`new Vue`)**. [Here's an example](https://github.com/chrisvfritz/vue-enterprise-boilerplate/blob/master/src/components/_globals.js)of this pattern in a real project context.
226
+
N'oubliez pas que **la création globale doit avoir lieu avant la création de l'instance racine Vue (avec`new Vue`)**. [Voici un exemple](https://github.com/chrisvfritz/vue-enterprise-boilerplate/blob/master/src/components/_globals.js)de ce modèle dans un contexte de projet réel.
0 commit comments