인라인 조건 렌더링은 JSX 안에서 조건에 따라 컴포넌트나 요소를 동적으로 렌더링할 때 사용된다.
function Mailbox(props) {
const unreadMessage = props.unreadMessage;
return (
<div>
<h1>안녕하세요!</h1>
{unreadMessage.length > 0 && (
<h2>현재 {unreadMessage.length}개의 읽지 않은 메시지가 있습니다.</h2>
)}
</div>
);
}
<h2> 태그가 렌더링 된다.<h2>는 렌더링되지 않는다.props.unreadMessage = [1, 2, 3];
=> "현재 3개의 읽지 않은 메시지가 있습니다." 출력.
props.unreadMessage = [];
=> `<h2>` 태그가 아예 렌더링되지 않음.
function UserStatus(props) {
return (
<div>
이 사용자는 현재 <b>{props.isLoggedIn ? '로그인' : '로그인하지 않음'}</b>상태입니다.
</div>
);
}
삼항 연산자:
실행 흐름:
props.isLoggedIn = true;
=> "이 사용자는 현재 로그인 상태입니다." 출력.
props.isLoggedIn = false;
=> "이 사용자는 현재 로그인하지 않은 상태입니다." 출력.
function LoginControl(props) {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const handleLoginClick = () => setIsLoggedIn(true);
const handleLogoutClick = () => setIsLoggedIn(false);
return (
<div>
<Greeting isLoggedIn={isLoggedIn} />
{isLoggedIn ? (
<LogoutButton onClick={handleLogoutClick} />
) : (
<LoginButton onClick={handleLoginClick} />
)}
</div>
);
}
<LogoutButton>을 렌더링하고, false이면 <LoginButton>을 렌더링한다.이제 뭔가 이해가 점점 되는 거 같다!!!!!
공부를 꾸준히 할 것!!!