조건부 렌더링

wony·2022년 3월 21일
0

삼항연산자

data는 동기적으로 받아와야하는 데이터이지만 데이터가 오기 전에 이미 return 부분에서 rendering을 해주고 있기 때문에 삼항 연산자를 써서 데이터가 있을 때, 없을 때를 모두 적어주는 방법
data가 도착하기전 비동기 방식으로 내가 원하는 것을 보여준다

<div>{data?data.fetchProduct.seller: <span>loading...</span> }판매자의 상품입니다</div>

&&연산자

data && data.fetchBoard.writer

&&연산자는 데이터가 없을 경우 undefined를 반환해준다.
data가 없으면 data(undefined)를 보여주고 data가 있으면 data.fetchBoard.writer를 보여주는것이라고 이해하면 되겠다.

옵셔널 체이닝

data?.fetchBoard.writer

optional-Chaining은 ? 연산자 앞 객체의 참조가 undefined 이거나 null 이라면 undefined를 리턴해줍니다.

위에 있는 삼항연산자, && 연산자와 똑같은 기능을 하지만 더 간단하다
가장 최근에 나온 문법

Nullish-coalescing

data ?? data.fetchBoard

nullish coalescing은 앞에가 거짓중에서도 null과 undefined일때만 렌더해주는 연산자이다.

연산자를 이용해서 console에 이용해본 결과

"사과" && "안녕하세요"
'안녕하세요'
"" || "반갑습니다"
'반갑습니다'
"사과" || "반갑습니다"
'사과'
0 || "안녕하세요"
'안녕하세요'
false || "안녕"
'안녕'
null || "헬로"
'헬로'
undefined || "하이"
'하이'
null ?? "주똄므" 
'주똄므'
undefined ?? "봉쥴"
'봉쥴'
0 ?? "니하오"
0

참과 거짓

거짓의 경우

  1. 숫자에서는 0이면 거짓
  2. 문자열에서는 ""이면 거짓(비어있는것, 안에 스페이스바로 공간을 부여한다면 참이 된다)
  3. boolean에서는 false면 거짓
  4. null 거짓 (비어 있는것 하지만 원래 할당 되어 있다가 누군가 일부러 비울 경우 null 사용 암묵적인 룰이다)
  5. undefined 거짓 (비어 있는 것)
  6. NaN 거짓 (숫자가 아님)
    https://developer.mozilla.org/ko/docs/Glossary/Falsy

참의 경우

거짓과 반대되는 경우가 참의 경우
https://developer.mozilla.org/ko/docs/Glossary/Truthy

profile
무럭무럭 성장중🌿

0개의 댓글