` to your markup, you can write `<>` and
>
```
-This empty tag is called a *[Fragment.](/reference/react/Fragment)* Fragments let you group things without leaving any trace in the browser HTML tree.
+Cette balise vide est ce qu'on appelle un *[Fragment](/reference/react/Fragment)*. Les Fragments vous permettent de grouper des éléments sans laisser de trace dans l'arbre HTML du navigateur.
-#### Why do multiple JSX tags need to be wrapped? {/*why-do-multiple-jsx-tags-need-to-be-wrapped*/}
+#### Pourquoi faut-il enrober des balises JSX multiples ? {/*why-do-multiple-jsx-tags-need-to-be-wrapped*/}
-JSX looks like HTML, but under the hood it is transformed into plain JavaScript objects. You can't return two objects from a function without wrapping them into an array. This explains why you also can't return two JSX tags without wrapping them into another tag or a Fragment.
+JSX ressemble à HTML, mais sous le capot il est transformé en objets JavaScript bruts. Vous ne pouvez pas renvoyer deux objets depuis une fonction sans les enrober dans un tableau. Ça explique pourquoi vous ne pouvez pas non plus renvoyer deux balises JSX sans les enrober dans une autre balise ou un Fragment.
-### 2. Close all the tags {/*2-close-all-the-tags*/}
+### 2. Fermez toutes les balises {/*2-close-all-the-tags*/}
-JSX requires tags to be explicitly closed: self-closing tags like `
![]()
` must become `
![]()
`, and wrapping tags like `
oranges` must be written as `oranges`.
+JSX exige que les balises soient explicitement fermées : les balises auto-fermantes telles que `
![]()
` doivent utiliser `
![]()
`, et les balises enrobantes telles que `
oranges` doivent utiliser `oranges`.
-This is how Hedy Lamarr's image and list items look closed:
+Voici à quoi ressemblent l'image et les tâches de Hedy Lamarr une fois correctement fermées :
```js {2-6,8-10}
<>
-
- - Invent new traffic lights
- - Rehearse a movie scene
- - Improve the spectrum technology
+ - Inventer de nouveaux feux de circulation
+ - Répéter une scène de film
+ - Améliorer les techniques de spectrographie
>
```
-### 3. camelCase
all most of the things! {/*3-camelcase-salls-most-of-the-things*/}
+### 3. Utilisez la casseCamel pour (presque) tout ! {/*3-camelcase-salls-most-of-the-things*/}
-JSX turns into JavaScript and attributes written in JSX become keys of JavaScript objects. In your own components, you will often want to read those attributes into variables. But JavaScript has limitations on variable names. For example, their names can't contain dashes or be reserved words like `class`.
+JSX produit à terme du JavaScript, et les attributs en JSX deviennent des noms de propriétés d'objets JavaScript. Dans vos propres composants vous voudrez souvent lire ces attributs dans des variables. Mais JavaScript limite la syntaxe des noms de variables. Par exemple, ils ne peuvent pas contenir des tirets ou être des mots réservés tels que `class`.
-This is why, in React, many HTML and SVG attributes are written in camelCase. For example, instead of `stroke-width` you use `strokeWidth`. Since `class` is a reserved word, in React you write `className` instead, named after the [corresponding DOM property](https://developer.mozilla.org/en-US/docs/Web/API/Element/className):
+C'est pourquoi, en React, de nombreux attributs HTML et SVG sont écrits en casse Camel *(camelCase, NdT)*. Par exemple, au lieu de `stroke-width` vous écrirez `strokeWidth`. Puisque `class` est un mot réservé, en React vous écrirez plutôt `className`, nommé d'après la [propriété DOM correspondante](https://developer.mozilla.org/docs/Web/API/Element/className) :
```js {4}
-

```
-You can [find all these attributes in the list of DOM component props.](/reference/react-dom/components/common) If you get one wrong, don't worry—React will print a message with a possible correction to the [browser console.](https://developer.mozilla.org/docs/Tools/Browser_Console)
+Vous pouvez [consulter tous les attributs dans la liste des props de composants DOM](/reference/react-dom/components/common). Si vous vous trompez sur l'un d'eux, ne vous inquiétez pas : React vous affichera un message avec une suggestion de correction dans la [console du navigateur](https://developer.mozilla.org/docs/Tools/Browser_Console) *(lien en anglais, NdT)*.
-For historical reasons, [`aria-*`](https://developer.mozilla.org/docs/Web/Accessibility/ARIA) and [`data-*`](https://developer.mozilla.org/docs/Learn/HTML/Howto/Use_data_attributes) attributes are written as in HTML with dashes.
+Pour des raisons historiques, les attributs [`aria-*`](https://developer.mozilla.org/docs/Web/Accessibility/ARIA) et [`data-*`](https://developer.mozilla.org/docs/Learn/HTML/Howto/Use_data_attributes) sont écrits comme en HTML, c'est-à-dire avec des tirets.
-### Pro-tip: Use a JSX Converter {/*pro-tip-use-a-jsx-converter*/}
+### Astuce : utilisez un convertisseur JSX {/*pro-tip-use-a-jsx-converter*/}
-Converting all these attributes in existing markup can be tedious! We recommend using a [converter](https://transform.tools/html-to-jsx) to translate your existing HTML and SVG to JSX. Converters are very useful in practice, but it's still worth understanding what is going on so that you can comfortably write JSX on your own.
+Il est vite fastidieux de convertir tous les attributs d'un balisage existant ! Nous vous conseillons d'utiliser un [convertisseur](https://transform.tools/html-to-jsx) pour produire le JSX correspondant à du HTML et du SVG. Les convertisseurs sont très utiles en pratique, mais ça reste une bonne idée de comprendre ce qui se passe pour que vous puissiez aisément écrire du JSX par vous-même.
-Here is your final result:
+Voici notre résultat final :
@@ -234,16 +233,16 @@ Here is your final result:
export default function TodoList() {
return (
<>
- Hedy Lamarr's Todos
-
Liste de tâches de Hedy Lamarr
+
- - Invent new traffic lights
- - Rehearse a movie scene
- - Improve the spectrum technology
+ - Inventer de nouveaux feux de circulation
+ - Répéter une scène de film
+ - Améliorer les techniques de spectrographie
>
);
@@ -258,11 +257,11 @@ img { height: 90px }
-Now you know why JSX exists and how to use it in components:
+Vous savez désormais pourquoi JSX existe et comment l'utiliser dans les composants :
-* React components group rendering logic together with markup because they are related.
-* JSX is similar to HTML, with a few differences. You can use a [converter](https://transform.tools/html-to-jsx) if you need to.
-* Error messages will often point you in the right direction to fixing your markup.
+* Les composants React regroupent la logique de rendu et le balisage parce qu'ils ont un lien étroit.
+* JSX est similaire à HTML, mais avec quelques différences. Vous pouvez utiliser un [convertisseur](https://transform.tools/html-to-jsx) si besoin.
+* Les messages d'erreur vous indiqueront souvent quoi faire pour corriger votre balisage.
@@ -270,9 +269,9 @@ Now you know why JSX exists and how to use it in components:
-#### Convert some HTML to JSX {/*convert-some-html-to-jsx*/}
+#### Convertir du HTML en JSX {/*convert-some-html-to-jsx*/}
-This HTML was pasted into a component, but it's not valid JSX. Fix it:
+Ce HTML a été copié-collé dans un composant, mais il ne constitue pas du JSX valide. Corrigez-le :
@@ -280,12 +279,12 @@ This HTML was pasted into a component, but it's not valid JSX. Fix it:
export default function Bio() {
return (
-
Welcome to my website!
+ Bienvenue sur mon site !
- You can find my thoughts here.
+ Vous trouverez mes réflexions ici.
- And pictures of scientists!
+ Et des photos de scientifiques !
);
}
@@ -308,7 +307,7 @@ export default function Bio() {
-Whether to do it by hand or using the converter is up to you!
+Que vous le fassiez à la main ou en passant par un convertisseur, ça vous regarde !
@@ -319,12 +318,12 @@ export default function Bio() {
return (
-
Welcome to my website!
+ Bienvenue sur mon site !
- You can find my thoughts here.
+ Vous trouverez mes réflexions ici.
- And pictures of scientists!
+ Et des photos de scientifiques !
);