반응형
리액트에서는 종종 다른 조건에 따라 아무것도 렌더링 하지 않고 싶을 때가 있다. 그럴 때 쓰는 반환값이 바로 null
과 empty fragment( <></>
)이다. 이 둘 중에 무엇을 쓰는 게 더 나은 선택일까?
function Item({ name, isPacked }) {
if (isPacked) {
return null; // 또는 <></>
}
return <li className='item'>{name}</li>;
}
null
을 사용하는 것이 리액트 렌더링 프로세스에 아무 영향을 끼치지 않기 때문에 성능상으로 좋아서 사용하는 개발자가 있고, "빈 엘리먼트를 반환한다"라는 개념에서 <></>
를 의미론적으로 사용하는 개발자도 있다.
이 문제에 대한 힌트가 담긴 내용이 공식 문서에도 나와있다. 역시 이럴 땐 공식 문서 먼저 살펴보는 것이 좋은 것 같다. 공식 문서에서는 '아무것도 렌더링 하지 않을 때' null
을 사용하는 것을 예시로 들고 있다. 하지만 렌더링을 하려는 것에 null
을 반환하는 게 개발자에게 익숙하게 보이지 않을 수 있기 때문에, 다른 방향으로 렌더링 할 수 있는 방법도 소개하고 있다.
개인적인 생각으로 내린 결론은 아무것도 렌더링 하지 않을 때는 null
을 사용하고, 엘리먼트를 그룹화 할 때 fragment( <>...</>
)를 사용하는 것이 좀 더 역할에 맞는 것 같다.
참고
Conditional Rendering - React
Null vs Empty fragment? - Reddit
Are you giving the proper sense to React.Fragment? - Dev
React Fragment vs Null - junghyeonsu
반응형
'React' 카테고리의 다른 글
React 페이지네이션 UI 직접 만들기 (0) | 2023.08.02 |
---|---|
React에서 Swiper Element 사용 시 TypeScript 에러 해결하기 (0) | 2023.06.18 |
React에서 셋(Set)으로 체크박스 재정의하기 (2) | 2023.05.14 |
React에서 DataTables 사용하기(반응형 테이블) (4) | 2022.09.22 |
[번역] useEffect 단순화 (5) | 2022.09.12 |