OUJOOD.COM
Introduction
Les conditionnelles sont un aspect fondamental du développement React qui permettent d'afficher dynamiquement du contenu basé sur des conditions. Contrairement au JavaScript classique, React utilise une syntaxe spéciale pour intégrer des instructions conditionnelles dans le JSX.
Dans ce chapitre, nous allons explorer :
- Comment utiliser des instructions
if/else
dans React. - L'utilisation de l'opérateur ternaire pour simplifier les conditions.
- Des exemples pratiques pour illustrer leur fonctionnement.
Conditionnelles dans React
Dans React, il n'est pas possible d'utiliser directement des instructions if/else
dans le JSX. Cependant, il existe plusieurs façons d'implémenter des conditions :
- Opérateur ternaire : Une manière concise d'écrire des conditions simples.
- Élément court-circuit : Utilise la logique booléenne pour rendre ou ignorer du contenu.
- Fonctions externes : Pour des conditions plus complexes, vous pouvez utiliser des fonctions JavaScript.
1. Opérateur Ternaire
L'opérateur ternaire est une méthode simple et concise pour écrire des conditions dans React. Voici un exemple où un message différent est affiché selon la valeur d'une variable :
function Message({ isConnected }) { return ( <div> {isConnected ? ( <p>Bienvenue ! Vous êtes connecté.</p> ) : ( <p>Veuillez vous connecter pour continuer.</p> )} </div> ); } ReactDOM.render(<Message isConnected={true} />, document.getElementById('root'));
Explication détaillée :
-
function Message({ isConnected }) { ... }
:- Cette fonction définit un composant appelé
Message
qui accepte une prop appeléeisConnected
.
- Cette fonction définit un composant appelé
-
{isConnected ? (...) : (...)}
:- Cet opérateur ternaire vérifie la valeur de
isConnected
. - Si
isConnected
est vrai (true
), le premier élément<p>
est rendu. - Sinon, le deuxième élément
<p>
est affiché.
- Cet opérateur ternaire vérifie la valeur de
-
ReactDOM.render(<Message isConnected={true} />, document.getElementById('root'));
:- Cette ligne rend le composant
Message
avec la propisConnected
définie àtrue
. - Le message "Bienvenue ! Vous êtes connecté." sera affiché dans ce cas.
- Cette ligne rend le composant
2. Élément Court-Circuit
L'élément court-circuit est une autre méthode pour afficher du contenu conditionnellement. Il s'agit d'une technique utilisant la logique booléenne pour rendre ou ignorer un élément. Voici un exemple :
function Bienvenue({ nom }) { const utilisateurConnecte = nom; return ( <div> {utilisateurConnecte && <p>Bienvenue, {nom} !</p>} </div> ); } ReactDOM.render(<Bienvenue nom="Alice" />, document.getElementById('root'));
Explication détaillée :
-
const utilisateurConnecte = nom;
:- Cette variable représente l'état de connexion de l'utilisateur.
-
{utilisateurConnecte && <p>Bienvenue, {nom} !</p>}
:- Ce fragment utilise la logique booléenne pour afficher le contenu uniquement si
utilisateurConnecte
est vrai. - Ici, si
nom
a une valeur (non vide ou non nulle), le texte "Bienvenue, Alice !" sera affiché.
- Ce fragment utilise la logique booléenne pour afficher le contenu uniquement si
-
ReactDOM.render(<Bienvenue nom="Alice" />, document.getElementById('root'));
:- Cette ligne rend le composant
Bienvenue
avec la propnom
définie à "Alice".
- Cette ligne rend le composant
3. Fonctions Externes pour des Conditions Complexes
Pour des conditions plus complexes, il est souvent préférable d'utiliser des fonctions externes. Voici un exemple où une fonction détermine quel message doit être affiché :
function determinerMessage(connected) { if (connected) { return <p>Bienvenue ! Vous êtes connecté.</p>; } else { return <p>Veuillez vous connecter pour continuer.</p>; } } function Message({ isConnected }) { return ( <div> {determinerMessage(isConnected)} </div> ); } ReactDOM.render(<Message isConnected={false} />, document.getElementById('root'));
Explication détaillée :
-
function determinerMessage(connected) { ... }
:- Cette fonction prend un paramètre
connected
et retourne un élément JSX en fonction de sa valeur.
- Cette fonction prend un paramètre
-
{determinerMessage(isConnected)}
:- Ce fragment appelle la fonction
determinerMessage
pour déterminer quel message doit être affiché.
- Ce fragment appelle la fonction
-
ReactDOM.render(<Message isConnected={false} />, document.getElementById('root'));
:- Cette ligne rend le composant
Message
avec la propisConnected
définie àfalse
. - Le message "Veuillez vous connecter pour continuer." sera affiché dans ce cas.
- Cette ligne rend le composant
4. Exemple Complet : Affichage Conditionnel dans un Formulaire
Imaginons que vous souhaitiez afficher un message d'erreur lorsque l'utilisateur ne remplit pas un champ obligatoire dans un formulaire. Voici comment cela peut être fait :
import React, { useState } from 'react'; function Formulaire() { const [nom, setNom] = useState(""); function handleSubmit(event) { event.preventDefault(); if (nom.trim() === "") { alert("Veuillez entrer un nom valide !"); } else { alert(`Merci, ${nom} !`); } } return ( <form onSubmit={handleSubmit}> <label> Entrez votre nom : <input type="text" value={nom} onChange={(e) => setNom(e.target.value)} /> </label> <button type="submit">Envoyer</button> {nom.trim() === "" && <p style={{ color: "red" }}>Ce champ est obligatoire.</p>} </form> ); } ReactDOM.render(<Formulaire />, document.getElementById('root'));
Explication détaillée :
-
const [nom, setNom] = useState("");
:- Initialise l'état
nom
avec une chaîne vide. setNom
est une fonction pour mettre à jour cet état.
- Initialise l'état
-
function handleSubmit(event)
:- Cette fonction est appelée lors de la soumission du formulaire.
event.preventDefault()
empêche le comportement par défaut du navigateur (rechargement de la page).- Si
nom.trim() === ""
, une alerte indiquant que le champ est obligatoire est affichée. - Sinon, une alerte personnalisée contenant le nom est affichée.
-
{nom.trim() === "" && <p style={{ color: "red" }}>Ce champ est obligatoire.</p>}
:- Ce fragment utilise la logique booléenne pour afficher un message d'erreur si le champ est vide.
Meilleures Pratiques pour les Conditionnelles
Pour utiliser les conditionnelles efficacement dans vos applications React, voici quelques conseils :
- Privilégiez l'opérateur ternaire pour des conditions simples : Il rend le code plus concis et lisible.
- Utilisez des fonctions externes pour des conditions complexes : Cela améliore la maintenabilité et clarifie le JSX.
- Évitez les instructions if/else directement dans JSX : Préférez des fonctions ou des variables pour garder le JSX propre.
Conclusion
Vous avez maintenant appris à utiliser les conditionnelles dans React pour afficher dynamiquement du contenu basé sur des conditions. En combinant opérateur ternaire, logique booléenne et fonctions externes, vous pouvez créer des interfaces utilisateur interactives et intelligentes.
Prochain chapitre : Listes React