>웹 프론트엔드 >JS 튜토리얼 >React의 조건부 렌더링: UI 요소를 동적으로 렌더링하기

React의 조건부 렌더링: UI 요소를 동적으로 렌더링하기

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-22 01:19:32432검색

Conditional Rendering in React: Dynamically Rendering UI Elements

React의 조건부 렌더링: 조건에 따른 UI 렌더링

React의 조건부 렌더링은 특정 조건이나 상태에 따라 다양한 UI 요소를 렌더링하는 기술을 말합니다. React는 애플리케이션의 상태나 소품에 따라 구성 요소나 요소를 조건부로 렌더링하는 여러 가지 방법을 제공합니다.


1. 조건부 렌더링이란 무엇인가요?

조건부 렌더링은 특정 조건에 따라 다양한 구성요소나 요소를 렌더링하는 개념입니다. React에서는 일반적으로 JSX 내에서 if, ternary 또는 &&와 같은 JavaScript 연산자를 사용하여 표시할 내용을 결정합니다.

조건부 렌더링을 사용하는 이유

  • 사용자 상호작용이나 상태 변화에 따라 다양한 UI 요소를 표시합니다.
  • 로드 상태, 오류 메시지 또는 빈 상태 표시와 같은 극단적인 경우를 처리합니다.
  • 다양한 레이아웃이나 구성 요소 간을 동적으로 전환합니다.

2. 기본 조건부 렌더링 기법

아. if/else 문 사용

JSX를 반환하기 전에 if 또는 else 문을 사용하는 전통적인 접근 방식을 사용할 수 있습니다. 이는 여러 조건을 확인해야 할 때 특히 유용합니다.

import React, { useState } from "react";

const MyComponent = () => {
  const [isLoggedIn, setIsLoggedIn] = useState(false);

  if (isLoggedIn) {
    return <h1>Welcome back!</h1>;
  } else {
    return <button onClick={() => setIsLoggedIn(true)}>Login</button>;
  }
};

ㄴ. 삼항 연산자 사용

삼항 연산자는 조건부 렌더링을 수행하는 간단한 방법입니다. 조건이 true이면 한 요소를 표시하고 false이면 다른 요소를 표시하려는 경우에 유용합니다.

import React, { useState } from "react";

const MyComponent = () => {
  const [isLoggedIn, setIsLoggedIn] = useState(false);

  return (
    <>
      {isLoggedIn ? (
        <h1>Welcome back!</h1>
      ) : (
        <button onClick={() => setIsLoggedIn(true)}>Login</button>
      )}
    </>
  );
};

ㄷ. 논리 && 연산자 사용

&& 연산자는 조건이 참인 경우 요소를 렌더링하는 단락 연산자입니다. 이 접근 방식은 else 분기 없이 조건부로 무언가를 렌더링해야 할 때 유용합니다.

import React, { useState } from "react";

const MyComponent = () => {
  const [isLoggedIn, setIsLoggedIn] = useState(false);

  return (
    <>
      {isLoggedIn && <h1>Welcome back!</h1>}
      {!isLoggedIn && <button onClick={() => setIsLoggedIn(true)}>Login</button>}
    </>
  );
};

3. 함수를 이용한 조건부 렌더링

특히 확인할 조건이 여러 개인 경우 조건부 렌더링을 보다 명확하게 처리하는 기능을 사용할 수도 있습니다.

import React, { useState } from "react";

const MyComponent = () => {
  const [status, setStatus] = useState("loading");

  const renderContent = () => {
    if (status === "loading") {
      return <p>Loading...</p>;
    } else if (status === "error") {
      return <p>Error occurred!</p>;
    } else {
      return <p>Data loaded successfully!</p>;
    }
  };

  return (
    <div>
      {renderContent()}
      <button onClick={() => setStatus("error")}>Simulate Error</button>
      <button onClick={() => setStatus("success")}>Simulate Success</button>
    </div>
  );
};

4. React 구성 요소를 사용한 조건부 렌더링

때때로 특정 조건에 따라 전체 구성 요소를 렌더링하고 싶을 수도 있습니다.

import React, { useState } from "react";

const Welcome = () => <h1>Welcome back!</h1>;
const Login = () => <button>Login</button>;

const MyComponent = () => {
  const [isLoggedIn, setIsLoggedIn] = useState(false);

  return isLoggedIn ? <Welcome /> : <Login />;
};

5. 배열 매핑 기반 조건부 렌더링

항목 목록을 렌더링하는 경우 조건부 렌더링을 사용하여 목록의 특정 요소를 선택적으로 렌더링할 수 있습니다.

import React, { useState } from "react";

const MyComponent = () => {
  const [isLoggedIn, setIsLoggedIn] = useState(false);

  if (isLoggedIn) {
    return <h1>Welcome back!</h1>;
  } else {
    return <button onClick={() => setIsLoggedIn(true)}>Login</button>;
  }
};

6. API 호출에 대한 useEffect를 사용한 조건부 렌더링

많은 경우 API 호출 또는 비동기 데이터 가져오기 결과에 따라 요소를 조건부로 렌더링하게 됩니다. 이는 useEffect의 상태 및 부작용을 사용하여 수행할 수 있습니다.

import React, { useState } from "react";

const MyComponent = () => {
  const [isLoggedIn, setIsLoggedIn] = useState(false);

  return (
    <>
      {isLoggedIn ? (
        <h1>Welcome back!</h1>
      ) : (
        <button onClick={() => setIsLoggedIn(true)}>Login</button>
      )}
    </>
  );
};

7. 조건부 렌더링 모범 사례

  • 간단하게 유지: JSX를 읽고 유지 관리하기 어렵게 만드는 깊게 중첩된 조건을 피하세요.
  • 도우미 기능 사용: 조건이 여러 개인 경우 UI의 다양한 부분을 렌더링하기 위해 도우미 기능을 사용하는 것이 더 깔끔한 경우가 많습니다.
  • 상태 및 속성 고려: 조건부 렌더링은 구성 요소의 상태나 속성에 따라 달라지는 경우가 많습니다. 로딩 상태, 빈 데이터, 오류 등의 극단적인 경우를 반드시 처리하세요.

8. 결론

조건부 렌더링은 상태나 소품에 따라 다양한 UI 요소를 표시할 수 있게 해주는 React의 기본 개념입니다. if, 삼항 연산자, && 연산자 또는 함수와 같은 기술을 사용하여 구성 요소가 렌더링하는 내용을 동적으로 조정할 수 있습니다. 적절한 조건부 렌더링은 앱 상태 또는 사용자 상호 작용을 기반으로 적절한 콘텐츠를 표시하여 사용자 경험을 개선하는 데 도움이 됩니다.

위 내용은 React의 조건부 렌더링: UI 요소를 동적으로 렌더링하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Next.js 기본다음 기사:Next.js 기본