` inutile, utilisez un Fragment :
```javascript
// INCORRECT - plusieurs éléments racine
function UserInfo({ user }) {
return (
{user.name}
{user.email}
// Erreur !
);
}
// CORRECT - avec Fragment
function UserInfo({ user }) {
return (
<>
{user.name}
{user.email}
>
);
}
// Ou la syntaxe longue
import { Fragment } from 'react';
function UserInfo({ user }) {
return (
{user.name}
{user.email}
);
}
```
## Exercices
### Exercice 1 : Convertir en JSX
Convertir ce HTML en JSX :
```html
```
**Solution :**
```javascript
```
### Exercice 2 : Affichage conditionnel
Créer un composant qui affiche :
- "Chargement..." si `loading` est true
- "Aucun résultat" si `items` est vide
- La liste des items sinon
**Solution :**
```javascript
function ItemList({ loading, items }) {
if (loading) {
return
Chargement...
;
}
if (items.length === 0) {
return
Aucun résultat
;
}
return (
{items.map(item => (
- {item.name}
))}
);
}
```
## Points clés à retenir
1. **JSX n'est pas HTML** : c'est du JavaScript transformé
2. **className** au lieu de class, **htmlFor** au lieu de for
3. **Accolades `{}`** pour insérer du JavaScript
4. **Ternaire `? :`** ou **&&** pour les conditions
5. **map()** pour les boucles, avec une **key** unique
6. **Fragments `<>>`** pour retourner plusieurs éléments
[[:15_training:module2-introduction-react:philosophie|← Chapitre précédent]] | [[:15_training:module2-introduction-react:start|Retour au module]] | [[:15_training:module2-introduction-react:composants|Chapitre suivant : Composants →]]