3.15 Devoir 1 temps de pratique react et component basics
Dans cette vidéo pratique, nous mettons en œuvre les notions apprises pour créer deux nouveaux composants : Depenses (qui regroupe tous les DepenseItem) et Card (un composant générique d'apparence avec coins arrondis et ombre portée). C'est un excellent exercice pour consolider les bases des composants et des props.
Composants à créer
- Depenses.js : composant qui contient la liste des dépenses.
- Depenses.css : styles dédiés au composant Depenses.
- Card.js : composant générique avec apparence de carte.
- Card.css : styles partagés (box-shadow, border-radius).
- props.children pour transmettre le contenu interne.
Le composant Card reçoit ses éléments enfants via props.children, ce qui permet de l'utiliser comme un wrapper visuel autour de n'importe quel contenu. On ajoute la possibilité de passer un className additionnel via props.className pour personnaliser le style sans casser les valeurs par défaut (box-shadow, border-radius).
// Card.js
import "./Card.css";
function Card(props) {
const classes = "card " + props.className;
return (
<div className={classes}>{props.children}</div>
);
}
export default Card;
// Utilisation
<Card className="depenses-item">
... contenu ...
</Card>
Card devient alors un composant générique réutilisable partout dans l'application pour donner une apparence de conteneur. Les styles partagés (ombre, arrondi) sont centralisés dans Card.css. Cette approche illustre parfaitement la philosophie de React : composer plusieurs petits composants spécialisés pour construire une interface cohérente. À bientôt pour la suite.
En résumé
Cette leçon propose un exercice pratique sur les fondamentaux des composants React. Vous apprendrez à créer des composants réutilisables (comme un composant Carte), à les importer/exporter entre fichiers, et à utiliser les props essentielles comme 'className' et 'children'. L'exercice vous guide à travers la refactorisation de code existant en structure modulaire avec styles CSS (box-shadow, border-radius).
Points clés
- Créer et exporter des composants React réutilisables (exemple : composant Carte)
- Importer/exporter correctement des composants entre fichiers JavaScript
- Utiliser les props fondamentaux : children, className et destructuration
- Appliquer le CSS au niveau du composant (box-shadow, border-radius) pour créer des visuels cohérents
- Refactoriser du code existant en composants modulaires plutôt que répéter le code
- Respecter la convention d'export avec 'export default' et les majuscules pour les noms de composants
Questions fréquentes
Pourquoi créer un composant Carte séparé plutôt que de répéter le code HTML ?
Un composant réutilisable (Carte) réduit la duplication de code et facilite la maintenance. Si vous devez changer l'apparence des cartes, une seule modification dans Carte.js suffit au lieu de modifier plusieurs fichiers. C'est le principe DRY (Don't Repeat Yourself) en React.
Quelle est la différence entre 'className' et 'children' comme props ?
'className' est utilisée pour appliquer des styles CSS à un composant. 'children' est un prop réservé qui représente le contenu passé à l'intérieur du composant (entre ses balises ouvrante et fermante). Dans cet exercice, le composant Carte reçoit className mais pas children.
Pourquoi mettre 'export default' sur le composant Carte ?
'export default' rend le composant importable depuis d'autres fichiers. Sans cela, vous ne pourriez pas utiliser 'import Carte from "./Carte"' dans vos autres fichiers. C'est la façon standard d'exporter un composant React en tant que module.