조건부 렌더링 쉽게 이해하기
로그인 여부나 데이터 상태에 따라 다른 화면을 보여주고 싶은 상황
- 문제 상황 확인
- 짧은 코드로 재현
- 브라우저에서 결과 점검
조건부 렌더링에서 먼저 볼 부분
조건부 렌더링은 조건에 따라 JSX를 다르게 반환하는 방식입니다. React 화면을 상황별로 나누는 기본 기술입니다.
React에서는 JavaScript 조건문을 사용해 화면을 바꿉니다. if문, 삼항연산자, && 연산자 모두 상황에 따라 사용할 수 있습니다.
조건이 복잡하면 JSX 안에 모두 넣기보다 위쪽에서 변수로 분리하거나 별도 컴포넌트로 나누면 읽기 쉽습니다.
로딩, 에러, 빈 데이터, 정상 데이터처럼 상태가 여러 개인 화면은 조건 순서를 명확히 정해야 합니다.
로그인/로그아웃 화면
function LoginMessage({ isLoggedIn }) {
if (isLoggedIn) {
return <p>다시 오신 것을 환영합니다.</p>;
}
return <button>로그인하기</button>;
}
이 예제는 그대로 복사해서 확인하는 것보다 한 줄씩 바꿔보는 쪽이 더 도움이 됩니다. 태그 이름, 선택자, 변수 이름, 함수 실행 위치를 조금씩 바꾸면 어떤 부분이 결과에 영향을 주는지 직접 확인할 수 있습니다.
조건부 렌더링 쉽게 이해하기 비교 기준
| 방식 | 어울리는 상황 |
| if문 return | 분기가 큰 화면 |
| 삼항연산자 | 짧은 둘 중 하나 |
| && 연산자 | 있으면 보여주기 |
| 별도 컴포넌트 | 화면이 커질 때 |
잘못 작성했을 때 나타나는 흐름
React 글은 화면 조각, 데이터 흐름, 상태 변경 시점을 나누어 읽으면 헷갈림이 줄어듭니다.
값이 부모에서 내려오는지, 컴포넌트 내부에서 바뀌는지 구분하면 props와 state 관련 오류를 훨씬 빨리 찾을 수 있습니다.
작은 예제라도 렌더링 전후에 화면이 왜 바뀌는지 설명할 수 있어야 다음 단계의 Hook을 이해하기 쉽습니다.
브라우저에서 직접 확인하는 순서
먼저 화면에 나타나는 결과를 보고, 그다음 코드에서 방금 수정한 부분을 확인하세요. 결과가 예상과 다르다면 콘솔 오류, 파일 경로, 선택자 이름, 태그 닫힘, 실행 순서 중 하나가 흔한 원인입니다.
초보 단계에서는 정답 코드를 한 번에 외우기보다 실패한 코드와 수정한 코드를 나란히 비교하는 방식이 좋습니다. 이 글의 예제를 기준으로 작은 값을 바꿔보면 다음 글을 읽을 때도 기준이 더 선명해집니다.
실습 후 점검할 항목
- 조건의 기준 값이 무엇인지 정하기
- 로딩/에러/빈 상태를 따로 고려하기
- JSX 안 조건이 너무 길면 분리하기
- false일 때 아무것도 안 보여도 되는지 확인하기
공식 문서로 더 확인하기: React 공식 문서