React에서 조건부 렌더링은 JavaScript에서의 조건 처리와 같이 동작합니다. if 나 조건부 연산자 와 같은 JavaScript 연산자를 현재 상태를 나타내는 엘리먼트를 만드는 데에 사용하세요. 그러면 React는 현재 상태에 맞게 UI를 업데이트할 것입니다. -React 공식홈페이지-
즉 조건부 렌더링은 자바스크립트에서 동작하는 것처럼 if나 조건 연산자와 같은 자바스크립트 연산자를 사용하여 특정 조건에 따라 다른 결과물을 렌더링 하는 것을 의미한다.
홈페이지를 제작하다 보면 특정 조건에 따라 다른 컴포넌트를 보여주고 싶을 때가 있다. 예를들어 로그인, 회원가입 버튼이 있다. 로그인을 하지 않은 상태에는 로그인 버튼이 보여져야하고, 로그인을 한 상태에서는 로그인 버튼이 사라지고 로그아웃 버튼이 렌더링 되어야 한다. 이 경우 조건부 렌더링을 사용할 수 있다.
조건부 렌더링에는 논리연산자, 삼항연산자, 옵셔널텍스트 체이닝이 있다.
data && data.fetchProfile
//data 가 참이면 data.fetchProfile 반환
(true && 'Hello')
//'Hello'
반대로 || 연산자는 앞의 값이 거짓일 경우 뒤의 값을 보여준다.
조건문 ? 참일 때 실행할 식: 거짓일 때 실행할 식
조건문: 조건문으로 들어갈 표현식
참일 때 실행할 식: 조건문이 Truthy일 때 실행되는 표현식 (true일 때 치환될 값)
거짓일 때 실행할 식:조건문이 falsy일 때 실행되는 표현식 (false일 때 치환될 값)
false외에도 null,NaN, 0, 비어있는 문자 값 (""), 그리고 undefined으로 조건문에 false 값으로 사용 가능하며, 이 값들이 조건문으로 사용된다면 (거짓일 때 실행할 식)이 결과로 나오게 된다.
data?.fetchProfile
//undefined
옵셔널 체이닝 처럼 많이 사용하는 것은 아니지만, 같은 ES11문법에서 나온 nullish coalescing은 만약 왼쪽 표현식이 null 또는 undefined인 경우, 오른쪽 표현식의 결과를 반환한다.
leftExpr ?? rightExpr
참고 및 출처
https://dream-frontend.tistory.com/328
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator