728x90
728x90

조건부 렌더링 방법 정리

들어가며

  • 리액트(React.js)에서의 조건부 렌더링 방법을 정리해본다.

 

조건부 렌더링(Conditional Rendering)

개념

  • 특정한 조건에 따라 UI의 일부를 보여주거나 숨기는 방법

 

방법

① 조건부 연산자 / 삼항 연산자(? :)

  • 조건부 렌더링을 쉽게 구현할 수 있는 방법
  • 조건이 참일 때는 특정 컴포넌트를 렌더링하고, 거짓일 때는 다른 컴포넌트를 렌더링하거나 아무 것도 렌더링하지 않게 할 수 있다.
function Example({ isVisible }) {
return (
<div>
{isVisible ? <p>이 내용은 보입니다!</p> : <p>이 내용은 보이지 않습니다!</p>}
</div>
);
}

 

② 논리 연산자(&&)

  • 논리 && 연산자를 사용하여 조건이 참일 때만 렌더링하도록 할 수 있다.
  • 조건이 거짓일 경우, 아무 것도 렌더링하지 않는다.
function Example({ isVisible }) {
return (
<div>
{isVisible && <p>이 내용은 보입니다!</p>}
</div>
);
}

 

③ 삼항 연산자(? :)와 null

  • 삼항 연산자(? :)를 사용하여 조건이 일 때 특정 컴포넌트를 렌더링하고, 거짓일 때 null을 반환할 수 있다.
function Example({ isVisible }) {
return (
<div>
{isVisible ? <p>이 내용은 보입니다!</p> : null}
</div>
);
}

 

또는 조건이 거짓일 때 null 대신 false를 반환해도 된다.

 

조건부 렌더링을 함수로 분리하기

  • 조건부 렌더링 로직을 함수로 분리하여 코드의 가독성을 높일 수 있다.
function Example({ isVisible }) {
const renderContent = () => {
if (isVisible) {
return <p>이 내용은 보입니다!</p>;
} else {
return <p>이 내용은 보이지 않습니다!</p>;
}
};
return <div>{renderContent()}</div>;
}

 

⑤ 조건부 렌더링을 컴포넌트로 분리하기

  • 조건부 렌더링을 별도의 컴포넌트로 분리하여 재사용성과 관리 편의성을 높일 수 있다.
function VisibleContent() {
return <p>이 내용은 보입니다!</p>;
}
function HiddenContent() {
return <p>이 내용은 보이지 않습니다!</p>;
}
function Example({ isVisible }) {
return (
<div>
{isVisible ? <VisibleContent /> : <HiddenContent />}
</div>
);
}

 

switch

  • 복잡한 조건부 렌더링이 필요할 때는 switch 문을 사용할 수 있다.
function Example({ status }) {
const renderContent = () => {
switch (status) {
case 'loading':
return <p>로딩 중...</p>;
case 'error':
return <p>오류가 발생했습니다.</p>;
case 'success':
return <p>성공적으로 로드되었습니다!</p>;
default:
return <p>상태를 알 수 없습니다.</p>;
}
};
return <div>{renderContent()}</div>;
}

 

&& 연산자와 null 

  • && 연산자를 사용하고, 기본적으로 아무 것도 렌더링하지 않도록 설정할 수 있다.
function Example({ isVisible }) {
return (
<div>
{isVisible && <p>이 내용은 보입니다!</p>}
</div>
);
}

 

 

?? 연산자와 null

  • ?? 연산자Nullish 병합 연산자(Nullish Coalescing Operator)로 좌항의 값이 null 또는 undefined일 경우 우항의 값을 표시한다.
function Example() {
const [isVisible, setIsVisible] = useState();
{isVisible ?? (
<p>이 내용은 보입니다!</p>
)}
}

 

참고 사이트

 

Conditional Rendering – React

A JavaScript library for building user interfaces

legacy.reactjs.org

 

728x90
728x90

조건부 렌더링 방법 정리들어가며조건부 렌더링(Conditional Rendering)개념방법① 조건부 연산자 / 삼항 연산자(? :)② 논리 연산자(&&)③ 삼항 연산자(? :)와 null④ 조건부 렌더링을 함수로 분리하기⑤ 조건부 렌더링을 컴포넌트로 분리하기⑥ switch 문⑦ && 연산자와 null ⑧ ?? 연산자와 null참고 사이트