Sobes.tech
Junior

Cum se redă un component în funcție de o condiție?

sobes.tech AI

Răspuns de la AI

De obicei, următoarele abordări sunt utilizate:

  • Renderizare condiționată folosind operatorul ternar sau if: Cea mai simplă metodă.

    // Exemplu cu operator ternar în React
    function ComponenteMea({ esteAutentificat }) {
      return (
        <div>
          {esteAutentificat ? (
            <p>Bun venit, utilizator!</p>
          ) : (
            <button>Autentificare</button>
          )}
        </div>
      );
    }
    
    // Exemplu cu if în interiorul unui component funcțional
    function AltComponent({ înAșteptare }) {
      if (înAșteptare) {
        return <p>Se încarcă...</p>;
      }
      return <h1>Datele au fost încărcate!</h1>;
    }
    
  • Operatorul logic AND (&&): Util pentru a afișa un component doar dacă condiția este adevărată.

    // Exemplu cu && în React
    function Mesaje({ count }) {
      return (
        <div>
          {count > 0 && <p>Ai {count} mesaje noi.</p>}
        </div>
      );
    }
    
  • Utilizarea funcțiilor și componentelor copil: Permite extragerea logicii de randare în funcții sau componente separate pentru o mai bună lizibilitate și reutilizare.

    // Exemplu cu funcție în React
    function renderContent(roleUser) {
      if (roleUser === 'admin') {
        return <PanouAdmin />;
      } else if (roleUser === 'utilizator') {
        return <ProfilUtilizator />;
      }
      return <PaginaLogin />;
    }
    
    function App({ roleUser }) {
      return (
        <div>
          {renderContent(roleUser)}
        </div>
      );
    }
    
  • Array-uri și metoda map: Pentru afișarea unei liste de componente în funcție de date.

    // Exemplu cu map în React
    function ListaItems({ items }) {
      return (
        <ul>
          {items.map(item => (
            <li key={item.id}>{item.nume}</li>
          ))}
        </ul>
      );
    }
    
  • CSS display / visibility: Ascunde sau afișează un element, dar componenta totuși se va randa. Potrivit pentru cazuri simple în care starea nu afectează structura DOM.

    /* Exemplu CSS */
    .ascuns {
      display: none;
    }
    
    // Exemplu de aplicare a clasei CSS în React
    function ContinutToggle({ esteVizibil }) {
      return (
        <div className={esteVizibil ? '' : 'ascuns'}>
          <p>Acest conținut este ascuns.</p>
        </div>
      );
    }
    

Alegerea metodei depinde de complexitatea condiției și de structura componentului. Pentru condiții simple, adesea este suficient operatorul ternar sau &&. Pentru scenarii mai complexe și o mai bună organizare a codului, se recomandă utilizarea funcțiilor sau componentelor separate. Folosiți CSS display / visibility cu prudență dacă nu este necesar să eliminați complet elementul din DOM.