조건에 따른 렌더링(조건부 렌더링) → 어떠한 조건에 따라서 렌더링이 달라지는 것
Conditional Rendering 예시
function Greeting(props){
const isLoggedIn = props.isLoggedIn;
// 조건부 렌더링
if (isLoggedIn){
return <UserGreeting/>;
}
else{
return <GuestGreeting/>;
}
}
function UserGreeting(props){
return <h1> 다시 오셨군요! </h1>;
}
function GuestGreeting(props){
return <h1> 첫 방문이시군요. 회원 가입을 먼저 진행해주세요! </h1>;
}
Truthy → True는 아니지만 True로 여겨지는 값Falsy → False는 아니지만 False로 여겨지는 값
// 로그인 버튼 컴포넌트
function LoginButton(props){
return(
<button onClick = {props.onClick}>
로그인
</button>
);
}
// 로그아웃 버튼 컴포넌트
function LogoutButton(props){
return(
<button onClick = {props.onClick}>
로그아웃
</button>
);
}
function LoginControl(props){
const [isLoggedIn, setIsLoggedIn] = useState(false);
const handleLoginClick = () => {
setIsLoggedIn(true);
}
const handleLogoutClick = () => {
setIsLoggedIn(false);
}
let button;
if (isLoggedIn){
// button이라는 변수에 리액트 엘리먼트를 대입
button = <LogoutButton onClick = {handleLogoutClick}/>;
}
else{
// button이라는 변수에 리액트 엘리먼트를 대입
button = <LoginButton onClick = {handleLoginClick}/>;
}
return(
<div>
<Greeting isLoggedIn = {isLoggedIn}/>
{button}
</div>
)
}
In + Line
조건문을 코드 안에 집어넣는 것
&& (Logical AND) 연산자를 사용
단축 평가 (short-cut evaluation)을 활용한 방법

&& 연산에서 선행 조건문에 falsy expression을 사용하면 후행 조건문은 단축 평가에 의해 평가되지는 않지만 falsy expression의 결과값은 그대로 return되게 된다.
If-Else문의 경우 ? 연산자를 사용 → 삼항 연산자 방식
조건에 따라 각기 다른 element를 렌더링 하고 싶을 때 주로 사용
![]() | ![]() |
|---|
null을 리턴! null을 리턴하면 Component가 렌더링 되지 않음.
예제 코드
![]() | ![]() |
|---|
인용 자료 출처
처음 만난 리액트