Conditional-rendering
특정 조건에 따라서 렌더링 하는 방식
data && data.fetchProfile
=> 참이면 뒤에 그려주고 거짓이면 data그려줘
data || data.fetchProfile
=> 참이면 앞에 그려줘 거짓이면 뒤에 그려줘
=> 거짓중에서도 null이나 undefined일때 뒤에를 그려줘
data ?? data.fetchProfile
다음은 조건부 렌더링 예시들이다.
📌 && 와 || 연산자는 자주 쓰이니 기억해 두자.
이것 또한 귀찮아서 짧게 줄인 최신 문법이 옵셔널 체이닝이다.
data?.data.fetchProfile
=> data 있으면 보여주고 없으면 보여주지마
옵셔널체이닝과 조건부렌더링은 같은 의미이다.
data?.fetchProduct.name (옵셔널체이닝)
= data && data.fetchProduct.name (조건부렌더링)
=> data 있으면 보여주고 없으면 보여주지마
조건 ? 참일때 : 거짓일 때
data ? data.fetchBoard.writer : <div> loadindg...</div>
조건이 참일때 앞에 보여주고 거짓일 때는 뒤에 보여줘
=> 한줄로 쓸 수 있을 때 사용하는 것이 좋음
isLogin === true면 'currently' 를 반환
isLogin === false이면 'not'을 반환
render() {
const isLogIn = this.state.isLogIn;
return (
<div>
The user is <b>{isLogIn ? 'currently' : 'not'}</b> logged in.
</div>
);
}
!true // false
!false // true
!'사과' // false
!!'사과' // true
Boolean('사과') //true
!!'사과' // true