Sobes.tech
Junior

Чӣ гуна компонентро вобаста ба шароит расондан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Одатай истифода мешаванд усулҳои зерин:

  • Рендеринг шарти бо ёрии оператори тернарӣ ё if: Самараноктарин роҳ.

    // Мисол бо оператори тернарӣ дар React
    function MyComponent({ isLoggedIn }) {
      return (
        <div>
          {isLoggedIn ? (
            <p>Салом, корбар!</p>
          ) : (
            <button>Ворид шавед</button>
          )}
        </div>
      );
    }
    
    // Мисол бо if дар дохили функсионалӣ
    function AnotherComponent({ isLoading }) {
      if (isLoading) {
        return <p>Дарҳол...</p>;
      }
      return <h1>Маълумот бор карда шуд!</h1>;
    }
    
  • Ҳақиқӣ AND (&&): Муфид аст, вақте ки лозим аст, ки компонент танҳо дар шарти дуруст нишон дода шавад.

    // Мисол бо && дар React
    function MessagesCount({ count }) {
      return (
        <div>
          {count > 0 && <p>Шумо {count} паём нав доред.</p>}
        </div>
      );
    }
    
  • Истифодаи функсияҳо ва компонентҳои зер: Имкон медиҳад, ки логикаи рендериро ба функсияҳо ё компонентҳои алоҳида интиқол диҳед барои беҳтар кардани хондан ва такрории истифода.

    // Мисол бо функсия дар React
    function renderContent(userRole) {
      if (userRole === 'admin') {
        return <AdminPanel />;
      } else if (userRole === 'user') {
        return <UserProfile />;
      }
      return <LoginPage />;
    }
    
    function App({ userRole }) {
      return (
        <div>
          {renderContent(userRole)}
        </div>
      );
    }
    
  • Ҳисобҳо ва методи map: Барои нишон додани рӯйхати компонентҳо вобаста ба маълумот.

    // Мисол бо map дар React
    function ItemsList({ items }) {
      return (
        <ul>
          {items.map(item => (
            <li key={item.id}>{item.name}</li>
          ))}
        </ul>
      );
    }
    
  • CSS display / visibility: Маъзур ё нишон додани унсур, аммо компонент ҳанӯз рендер мешавад. Муфид барои ҳолатҳои оддӣ, ки ҳолат ба сохтори DOM таъсир намерасонад.

    /* Мисол CSS */
    .hidden {
      display: none;
    }
    
    // Мисол бо истифодаи синфи CSS дар React
    function ToggleableContent({ isVisible }) {
      return (
        <div className={isVisible ? '' : 'hidden'}>
          <p>Ин мазмун пинҳон мешавад.</p>
        </div>
      );
    }
    

Интихоби усул вобаста ба мураккабии шароит ва сохтори компонент мебошад. Барои шароити оддӣ, одатан, тернарӣ ё && кофист. Барои сценарийҳои мураккаб ва ташкилоти беҳтар, тавсия дода мешавад, ки функсияҳо ё компонентҳои алоҳида истифода шаванд. Истифодаи CSS display / visibility бояд бо эҳтиёт истифода шавад, агар зарур набошад, ки унсурро пурра аз DOM хориҷ кунад.