function UserGreeting(props) {
return <h1>다시 오셨군요!</h1>;
}
function GuestGreeting(props) {
return <h1>회원가입을 해주세요.</h1>;
}
function Greeting(props) {
const isLoggedIn = props.isLoggedIn;
if (isLoggedIn) {
return <UserGreeting />;
}
return <GuestGreeting />;
}
코드의 역할:
렌더링 흐름을 이해하기 쉽게:
자바스크립트에서 조건문에서 사용하는 값은 Truthy(참으로 평가되는 값) 또는 Falsy(거짓으로 평가되는 값)로 나뉜다.
Truthy 값:
[], 빈 객체 {} 등.Falsy 값:
예제 코드:
if (1) {
console.log("이 값은 truthy입니다.");
}
if (0) {
console.log("이 값은 falsy입니다.");
}
1. if-else를 이용한 조건부 렌더링:
function Greeting(props) {
const isLoggedIn = props.isLoggedIn;
if (isLoggedIn) {
return <UserGreeting />;
}
return <GuestGreeting />;
}
2. 삼항 연산자를 활용한 조건부 렌더링:
function Greeting(props) {
const isLoggedIn = props.isLoggedIn;
return isLoggedIn ? <UserGreeting /> : <GuestGreeting />;
}
3. && 연산자를 활용한 조건부 렌더링:
function WarningBanner(props) {
if (!props.warn) {
return null;
}
return <div>경고!</div>;
}
function Page() {
const [showWarning, setShowWarning] = useState(true);
return (
<div>
<WarningBanner warn={showWarning} />
<button onClick={() => setShowWarning(!showWarning)}>
{showWarning ? "감추기" : "보이기"}
</button>
</div>
);
}