Sobes.tech
Junior

Comment rendre un composant en fonction d'une condition?

sobes.tech IA

Réponse de l'IA

Les approches suivantes sont généralement utilisées :

  • Rendu conditionnel avec opérateur ternaire ou if : La méthode la plus simple.

    // Exemple avec opérateur ternaire en React
    function MonComposant({ estConnecte }) {
      return (
        <div>
          {estConnecte ? (
            <p>Bonjour, utilisateur !</p>
          ) : (
            <button>Se connecter</button>
          )}
        </div>
      );
    }
    
    // Exemple avec if dans un composant fonctionnel
    function AutreComposant({ enChargement }) {
      if (enChargement) {
        return <p>Chargement...</p>;
      }
      return <h1>Données chargées !</h1>;
    }
    
  • Opérateur logique AND (&&) : Utile pour afficher un composant uniquement si la condition est vraie.

    // Exemple avec && en React
    function Messages({ count }) {
      return (
        <div>
          {count > 0 && <p>Vous avez {count} nouveaux messages.</p>}
        </div>
      );
    }
    
  • Utilisation de fonctions et composants enfants : Permet d'extraire la logique de rendu dans des fonctions ou composants séparés pour une meilleure lisibilité et réutilisation.

    // Exemple avec fonction en React
    function renderContenu(roleUtilisateur) {
      if (roleUtilisateur === 'admin') {
        return <PanneauAdmin />;
      } else if (roleUtilisateur === 'utilisateur') {
        return <ProfilUtilisateur />;
      }
      return <PageConnexion />;
    }
    
    function App({ roleUtilisateur }) {
      return (
        <div>
          {renderContenu(roleUtilisateur)}
        </div>
      );
    }
    
  • Tableaux et méthode map : Pour afficher une liste de composants en fonction des données.

    // Exemple avec map en React
    function ListeItems({ items }) {
      return (
        <ul>
          {items.map(item => (
            <li key={item.id}>{item.nom}</li>
          ))}
        </ul>
      );
    }
    
  • CSS display / visibility : Cache ou affiche un élément, mais le composant est toujours rendu. Utile pour des cas simples où l’état n’affecte pas la structure du DOM.

    /* Exemple CSS */
    .cache {
      display: none;
    }
    
    // Exemple d’application de classe CSS en React
    function ContenuToggle({ estVisible }) {
      return (
        <div className={estVisible ? '' : 'cache'}>
          <p>Ce contenu est masqué.</p>
        </div>
      );
    }
    

Le choix de la méthode dépend de la complexité de la condition et de la structure du composant. Pour des conditions simples, le ternaire ou && suffisent souvent. Pour des scénarios plus complexes et une meilleure organisation du code, il est recommandé d’utiliser des fonctions ou composants séparés. Faites attention à l’utilisation de CSS display / visibility si vous ne souhaitez pas supprimer complètement l’élément du DOM.