
Introduction aux props (Propriétés)
Comprenez le concept fondamental des props (propriétés) dans React. Découvrez comment elles permettent de passer des données et de configurer les composants enfants.
Que sont les Props ?
Au coeur de la communication entre composants React se trouvent les props. Ce terme est l'abréviation de "properties" (propriétés). Les props sont un moyen pour les composants parents de transmettre des données ou des configurations à leurs composants enfants. Elles constituent le principal canal de communication dans le flux de données descendant (unidirectionnel) qui caractérise React.
Conceptuellement, vous pouvez penser aux props comme aux arguments passés à une fonction. Si un composant React est une fonction (ce qui est littéralement le cas pour les composants fonctionnels), alors les props sont les arguments que cette fonction reçoit pour influencer son comportement ou son rendu. Pour les composants classe, les props sont accessibles via `this.props`.
Sans les props, les composants seraient des entités isolées et statiques. Les props leur donnent vie en les rendant configurables, dynamiques et capables de réagir aux données spécifiques de leur contexte d'utilisation.
Pourquoi utiliser les Props ? Le besoin de configuration
L'objectif principal des props est de rendre les composants réutilisables et configurables. Imaginez que vous créez un composant `Button`. Sans props, ce bouton serait toujours identique (même texte, même action au clic). Ce ne serait pas très utile.
Grâce aux props, vous pouvez créer un seul composant `Button` générique et le configurer différemment à chaque fois que vous l'utilisez :
// Utilisation du composant Button avec différentes props
Ici, `text`, `color`, `onClick`, et `disabled` sont des props passées au composant `Button`. A l'intérieur du composant `Button`, le développeur peut accéder à ces valeurs (par exemple, `props.text`, `props.color`) pour personnaliser le rendu (afficher le bon texte, appliquer la bonne couleur CSS) et le comportement (exécuter la bonne fonction `onClick`, désactiver le bouton si `disabled` est vrai).
De même, un composant `UserProfile` pourrait recevoir des props comme `userName`, `avatarUrl`, `bio` pour afficher les informations d'un utilisateur spécifique.
Le flux de données unidirectionnel et l'immutabilité des props
Les props suivent le principe du flux de données unidirectionnel de React : les données circulent toujours du composant parent vers le composant enfant. Un composant parent peut passer des props à son enfant, mais un enfant ne peut pas modifier directement les props qu'il reçoit pour influencer son parent via ce canal.
Une règle fondamentale de React est que les props sont en lecture seule (read-only) pour le composant qui les reçoit. Un composant ne doit jamais essayer de modifier ses propres props (`props.text = 'Nouveau texte';` est interdit et ne fonctionnera pas comme prévu). Les props sont considérées comme immuables du point de vue du composant enfant.
Si un composant enfant a besoin de modifier une valeur qui lui a été passée via une prop, il doit le faire indirectement, généralement en appelant une fonction (elle-même passée en prop par le parent) qui demandera au composant parent de modifier son propre état, ce qui entraînera un nouveau rendu et potentiellement de nouvelles valeurs de props pour l'enfant. Ce mécanisme (souvent appelé "remonter l'état" ou "lifting state up") sera abordé plus tard.
En résumé : Les arguments des composants
Les props sont donc des objets JavaScript contenant des données passées d'un composant parent à un composant enfant. Elles permettent de configurer l'apparence et le comportement des composants, les rendant ainsi réutilisables et dynamiques. Elles suivent un flux unidirectionnel (parent vers enfant) et sont immuables pour le composant enfant. Dans les sections suivantes, nous verrons concrètement comment passer et recevoir ces props.