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 = <LogoutButton onClick={handleLogoutClick} />;
} else {
button = <LoginButton onClick={handleLoginClick} />;
}
return (
<div>
<Greeting isLoggedIn={isLoggedIn} />
{button}
</div>
);
}
<Greeting isLoggedIn={isLoggedIn /> 사용자에게 환영 메시지를 보여준다. isLoggedIn에 따라 다르게 렌더링이 된다.function Greeting(props) {
const isLoggedIn = props.isLoggedIn;
if (isLoggedIn) {
return <h1>다시 오셨군요!</h1>;
}
return <h1>회원가입을 해 주세요.</h1>;
}