
저번 4장 : 컴포넌트 상태 개념 정리에 이어
7장 : 조건부 렌더링과 반복 렌더링 개념정리 시작하겠습니다.
조건부 렌더링은 특정 조건에 따라 서로 다른 UI를 보여주는 방식이다.
React에서는 JSX 내부에서 조건을 활용해 화면을 제어한다.
: 가장 기본적인 방식은 if문을 사용해 return 값을 분기하는 것이다.
if (isLogin){
return <Logout />
}
return <Login />
: JSX 내부에서 가장 많이 사용하는 방식
{isLogin ? <Logout /> : <Login />}
: 조건이 true일 때만 렌더링
{isLogin && <Logout />}
: 조건 결과를 변수에 저장 후 JSX에서 사용
let message
if (isLogin) {
message = "환영합니다"
} else {
message = "로그인해주세요"
}
return <p>{message}</p>
→ 복잡한 조건일 때 가독성 향상
<div className={isActive ? "active" : "inactive"} />
또는
<div className={isActive && "active"} />
→ 스타일 제어에 매우 자주 사용됨
배열 데이터를 기반으로 여러 요소를 반복해서 출력하는 방식이다.
: React에서 가장 표준적인 반복 렌더링 방식
{items.map((item, index) => (
<li key={index}>{item}</li>
))}
: 반복 렌더링 시 반드시 key 속성 필요
<li key={item.id}>{item.name}</li>
for (let i=0; i<items.length; i++) {
elements.push(<li key={i}>{items[i]}</li>)
}
forEach는 값을 반환하지 않기 때문에 직접 JSX로 사용 불가
→ 별도 배열에 push 후 렌더링해야 함
items.reduce((acc, item) => {
acc.push(<li key={item}>{item}</li>)
return acc
}, [])
{itens.length > 0 ? (
items.map(item => <li key={item.id}>{item.name}</li>)
) : (
<p>데이터가 없습니다</p>
)}
또는
{items.length === 0 && <p>데이터가 없습니다</p>}
→ 실제 프로젝트에서 매우 자주 사용
조건부 렌더링은 상태 기반 UI 제어 방식이다.삼항 연산자와 && 연산자가 가장 많이 사용된다.반복 렌더링은 map이 표준 방식이다.key는 필수이며, 고유값을 사용하는 것이 가장 좋다.4장에서 상태(state)의 개념을 이해했다면,
7장에서는 그 상태를 기반으로 화면을 어떻게 제어할 것인지를 배우는 단계였습니다.
이제 개념 정리는 마쳤으니,
다음 글에서는 이를 실제로 적용한 3주차 과제
카운터 앱과 리스트 앱 구현 과정을 정리해보겠습니다.