Co to jest renderowanie warunkowe w React?

React to deklaratywna biblioteka JavaScript typu open source, służąca do tworzenia wydajnych komponentów interfejsu użytkownika. Renderowanie warunkowe to funkcja w React, która umożliwia programistom renderowanie różnych komponentów lub treści w komponentach w oparciu o określone warunki, stany, dane wejściowe użytkownika lub dostępność danych. Może zminimalizować nadmiarowy kod, udostępniając więcej dynamicznych komponentów wielokrotnego użytku.

Aby komponenty wyświetlały użytkownikom określone wyniki w zależności od różnych warunków, możemy użyć logicznej składni JavaScript, takiej jak if/else instrukcje, instrukcje switch case, operatory potrójne i operatory „&&”, aby zmienić to, co zwróci komponent renderujący.

W poniższych przykładach komponent UserList jest elementem nadrzędnym komponentu Użytkownik. W naszym komponencie nadrzędnym renderujemy komponenty potomne, które otrzymają właściwości name (string) i isVerified (boolean).

jeśli/inaczej

function User({ name, isVerified }) {
  if(isVerified) {
    return <li className="user">{name}⭐️</li>;
  }
  return <li className="user">{name}</li>;
}

export default function UserList() {
  return (
    <div>
      <h1>List of Users:</h1>
      <ul>
        <User
          name={"John"}
          isVerified={false}
        />
        <User
          name={"Mary"}
          isVerified={true}
        />
        <User
          name={"Ryan"}
          isVerified={false}
        />
      </ul>
    </div>
  );
}

Jeśli właściwość isVerified dla użytkownika ma wartość true, wówczas komponent User zwróci „⭐️” obok nazwy użytkownika.

przełącznik

function User({ name, isVerified }) {
  switch(isVerified) {
    case true:
      return <li className="user">{name}⭐️</li>;
    case false:
      return <li className="user">{name}</li>;
  }
}

Tę samą logikę można wyrazić w instrukcji switch case pokazanej powyżej.

trójskładnikowy

function User({ name, isVerified }) {
  return (
    <li className="user">
      {isVerified ? name + "⭐️" : name} 
    </li>
  );
}

Operator trójskładnikowy jest niezwykle przydatny w zmniejszaniu nadmiarowości i tworzeniu czystszego kodu pokazanego w powyższym kodzie.

// ternary operator syntax
condition ? truthyExpression : falsyExpression

&&

function User({ name, isVerified }) {
  return (
    <li className="user">
      {name} {isVerified && "⭐️"} 
    </li>
  );
}

Wreszcie użycie operatora && to kolejna metoda pisania mniejszej ilości kodu w celu osiągnięcia tego samego logicznego wyniku. Jeśli parametr isVerified ma wartość true, zostanie wyświetlona gwiazdka. W przeciwnym razie wyświetli się tylko nazwa.

Renderowanie warunkowe jest istotną funkcją ReactJS, ponieważ umożliwia programistom tworzenie interaktywnych i dynamicznych komponentów interfejsu użytkownika. Bez renderowania warunkowego znacznie trudniej byłoby stworzyć komponenty wielokrotnego użytku, które można dostosować do różnych scenariuszy i warunków.

Oto kilka przydatnych źródeł, z których można dowiedzieć się więcej na temat renderowania warunkowego: