
Opérateur logique ET (`&&`) pour le rendu conditionnel court
Découvrez comment utiliser l'opérateur logique ET (&&) en React pour afficher un élément JSX uniquement si une condition est vraie. Une technique concise et efficace pour le rendu conditionnel court.
Le raccourci élégant du && pour un rendu simple
L'opérateur logique ET (`&&`) en JavaScript est bien connu pour son comportement de "court-circuit". Si l'expression à gauche de `&&` est évaluée comme "fausse" (falsy : `false`, `0`, `''`, `null`, `undefined`, `NaN`), JavaScript n'évalue même pas l'expression de droite et retourne directement la valeur de gauche. Si l'expression de gauche est "vraie" (truthy), alors l'expression de droite est évaluée et sa valeur est retournée. C'est ce comportement qui le rend particulièrement astucieux pour le rendu conditionnel en React.
Cette technique est idéale lorsque vous souhaitez afficher un élément JSX *uniquement si* une condition spécifique est remplie, et ne rien afficher dans le cas contraire. C'est une alternative très concise à l'opérateur ternaire où vous devriez explicitement retourner `null` dans la partie `else` (par exemple, `condition ?
Comme l'opérateur ternaire, `&&` produit une expression et peut donc être directement intégré entre les accolades `{}` dans votre JSX. Cela permet d'écrire des conditions d'affichage simples de manière très compacte et lisible, directement là où le rendu doit se produire.
Mise en pratique de l'opérateur && en jsx
Imaginons que vous souhaitiez afficher le nombre de messages non lus dans une boîte de réception, mais seulement s'il y en a effectivement. L'opérateur `&&` est parfait pour cela.
Voici comment vous pourriez l'implémenter :
function Mailbox(props) {
const unreadMessages = props.unreadMessages; // Supposons que c'est un tableau
return (
Bonjour !
{unreadMessages.length > 0 &&
Vous avez {unreadMessages.length} message(s) non lu(s).
}
Contenu principal de la boîte de réception...
);
}
// Exemple d'utilisation :
const messages = ['React est génial', 'Apprenez le rendu conditionnel'];
//
// Affichera :
// Bonjour !
// Vous avez 2 message(s) non lu(s).
// Contenu principal de la boîte de réception...
//
// Affichera seulement :
// Bonjour !
// Contenu principal de la boîte de réception...
Un autre cas courant est l'affichage d'un indicateur de chargement pendant qu'une donnée est récupérée :
function DataLoader({ isLoading, data }) {
return (
{isLoading && Chargement en cours...
}
{/* On pourrait aussi utiliser !isLoading && data pour afficher les données */}
{!isLoading && data && (
{/* Mapper et afficher les éléments de 'data' ici */}
- Donnée 1
- Donnée 2
)}
);
}
// // Affiche "Chargement en cours..."
// // Affiche la listeAttention toutefois à un piège potentiel : si l'expression à gauche de `&&` s'évalue à `0` (qui est *falsy* mais que React affiche littéralement), alors `0` sera rendu dans le DOM. Par exemple, `count &&
En conclusion, l'opérateur `&&` est un outil extrêmement pratique et concis pour les scénarios de rendu conditionnel où un élément doit être affiché uniquement si une condition est vraie. Sa simplicité en fait un favori pour de nombreux développeurs React, à condition de garder à l'esprit le comportement spécifique avec la valeur `0`.