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
Copy file name to clipboardExpand all lines: content/docs/introducing-jsx.md
+21-21Lines changed: 21 additions & 21 deletions
Original file line number
Diff line number
Diff line change
@@ -6,19 +6,19 @@ prev: hello-world.html
6
6
next: rendering-elements.html
7
7
---
8
8
9
-
Observez cette déclaration de variable:
9
+
Observez cette déclaration de variable:
10
10
11
11
```js
12
-
constelement=<h1>Bonjour, monde!</h1>;
12
+
constelement=<h1>Bonjour, monde!</h1>;
13
13
```
14
14
15
-
Cette drôle de syntaxe n'est ni une chaîne de caractères ni du HTML.
16
-
15
+
Cette drôle de syntaxe n'est ni une chaîne de caractères ni du HTML.
16
+
17
17
Ça s'appelle du JSX, et c'est une extension syntaxique de JavaScript. Nous recommandons de l'utiliser avec React afin de décrire à quoi devrait ressembler l'interface utilisateur (UI). JSX vous fait sûrement penser à un langage de balisage, mais il recèle toute la puissance de JavaScript.
18
18
19
19
JSX produit des « éléments » React. Nous verrons comment les retranscrire dans le DOM dans la [prochaine section](/docs/rendering-elements.html). Dans la suite de ce document, nous verrons les bases de JSX dont vous aurez besoin pour bien démarrer.
20
20
21
-
### Pourquoi JSX? {#why-jsx}
21
+
### Pourquoi JSX? {#why-jsx}
22
22
23
23
Le fonctionnement d’une UI conditionnera toujours les logiques de rendu, de la gestion des événements à la préparation des données pour l'affichage, en passant par l'évolution de l'état au fil du temps. React a choisi d'assumer pleinement cet état de fait.
24
24
@@ -58,7 +58,7 @@ const user = {
58
58
59
59
const element = (
60
60
<h1>
61
-
Bonjour, {formatName(user)}!
61
+
Bonjour, {formatName(user)}!
62
62
</h1>
63
63
);
64
64
@@ -74,22 +74,22 @@ On découple le JSX en plusieurs lignes pour une meilleure lisibilité. Par la m
Après la compilation, les expressions JSX deviennent de simples appels de fonctions JavaScripts, dont l'évaluation renvoie des objets JavaScript.
77
+
Après la compilation, les expressions JSX deviennent de simples appels de fonctions JavaScript, dont l'évaluation renvoie des objets JavaScript.
78
78
79
-
Ça signifie que vous pouvez utiliser JSX à l'intérieur d'instructions `if` ou de boucles `for`, l'affecter à des variables, l'accepter en tant qu'argument, et le renvoyer depuis des fonctions:
79
+
Ça signifie que vous pouvez utiliser JSX à l'intérieur d'instructions `if` ou de boucles `for`, l'affecter à des variables, l'accepter en tant qu'argument, et le renvoyer depuis des fonctions:
80
80
81
81
```js{3,5}
82
82
function getGreeting(user) {
83
83
if (user) {
84
-
return <h1>Bonjour, {formatName(user)}!</h1>;
84
+
return <h1>Bonjour, {formatName(user)}!</h1>;
85
85
}
86
86
return <h1>Bonjour, Belle Inconnue.</h1>;
87
87
}
88
88
```
89
89
90
90
### Spécifier des attributs en JSX {#specifying-attributes-with-jsx}
91
91
92
-
Vous pouvez utiliser des guillemets pour spécifier des littéraux chaînes de caractères dans les attributs:
92
+
Vous pouvez utiliser des guillemets pour spécifier des littéraux chaînes de caractères dans les attributs:
93
93
94
94
```js
95
95
constelement=<div tabIndex="0"></div>;
@@ -103,7 +103,7 @@ const element = <img src={user.avatarUrl}></img>;
103
103
104
104
Ne mettez pas de guillemets autour des accolades quand vous utilisez une expression JavaScript dans un attribut. Vous pouvez utiliser soit des guillemets (pour des valeurs textuelles) soit des accolades (pour des expressions), mais pas les deux à la fois pour un même attribut.
105
105
106
-
>**Attention:**
106
+
>**Attention:**
107
107
>
108
108
>Dans la mesure où JSX est plus proche de JavaScript que de HTML, React DOM utilise la casse `camelCase` comme convention de nommage des propriétés, au lieu des noms d’attributs HTML.
109
109
>
@@ -117,20 +117,20 @@ Si une balise est vide, vous pouvez la fermer immédiatement avec `/>`, comme en
117
117
constelement=<img src={user.avatarUrl} />;
118
118
```
119
119
120
-
Les balises JSX peuvent contenir des enfants:
120
+
Les balises JSX peuvent contenir des enfants:
121
121
122
122
```js
123
123
constelement= (
124
124
<div>
125
-
<h1>Bonjour!</h1>
125
+
<h1>Bonjour!</h1>
126
126
<h2>Content de te voir ici.</h2>
127
127
</div>
128
128
);
129
129
```
130
130
131
131
### JSX empêche les attaques d’injection {#jsx-prevents-injection-attacks}
132
132
133
-
Vous ne risquez rien en utilisant une saisie utilisateur dans JSX:
133
+
Vous ne risquez rien en utilisant une saisie utilisateur dans JSX:
134
134
135
135
```js
136
136
consttitle=response.potentiallyMaliciousInput;
@@ -145,12 +145,12 @@ Par défaut, React DOM [échappe](http://stackoverflow.com/questions/7381974/whi
145
145
146
146
Babel compile JSX vers des appels à `React.createElement()`.
147
147
148
-
Ces deux exemples sont identiques:
148
+
Ces deux exemples sont identiques:
149
149
150
150
```js
151
151
constelement= (
152
152
<h1 className="greeting">
153
-
Bonjour, monde!
153
+
Bonjour, monde!
154
154
</h1>
155
155
);
156
156
```
@@ -159,19 +159,19 @@ const element = (
159
159
constelement=React.createElement(
160
160
'h1',
161
161
{className:'greeting'},
162
-
'Bonjour, monde!'
162
+
'Bonjour, monde!'
163
163
);
164
164
```
165
165
166
-
`React.createElement()` effectue quelques vérifications pour vous aider à écrire un code sans bug, mais pour l'essentiel il crée un objet qui ressemble à ceci:
166
+
`React.createElement()` effectue quelques vérifications pour vous aider à écrire un code sans bug, mais pour l'essentiel il crée un objet qui ressemble à ceci:
167
167
168
168
```js
169
-
//Note: this structure is simplified
169
+
//Remarque : cette structure est simplifiée
170
170
constelement= {
171
171
type:'h1',
172
172
props: {
173
173
className:'greeting',
174
-
children:'Bonjour, monde!'
174
+
children:'Bonjour, monde!'
175
175
}
176
176
};
177
177
```
@@ -180,6 +180,6 @@ Ces objets sont appelés des « éléments React ». Vous pouvez les considér
180
180
181
181
Nous explorerons la retranscription des éléments React dans le DOM dans la prochaine section.
182
182
183
-
>**Astuce:**
183
+
>**Astuce:**
184
184
>
185
185
>Nous recommandons d'utiliser la [définition de langage « Babel »](http://babeljs.io/docs/editors) dans votre éditeur préféré, afin que les codes ES6 et JSX soient correctement colorisés. Ce site utilise le thème de couleurs [Oceanic Next](https://labs.voronianski.com/oceanic-next-color-scheme/), qui est compatible avec ce mode syntaxique.
0 commit comments