※ 강의를 듣고 제가 이해한 것을 바탕으로 정리한 것이라서 오류가 있을 수 있습니다.
조건부 렌더링
조건부 렌더링이란 특정 조건에 따라 다른 결과물을 렌더링 하는 것을 의미한다.
App.js (파일명)
// App.js
import React from 'react';
import Hello from './Hello';
import Wrapper from './Wrapper';
function App() {
return (
<Wrapper>
<Hello name="react" color="blue" isSpecial={true}/> {/* true가 자바스크립트 값이라서 { }를 써 주어야함 */}
<Hello color="pink"/>
</Wrapper>
);
}
export default App;
App,js에서 Hello.js에게 조건을 전달 하기 위해 isSpecial이라는 Props를 만들어주었다.
Hello.js (파일명)
import React from 'react';
function Hello({color, name, isSpecial}) {
return (
<div style={{
color
}}>
{isSpecial ? <b>*</b> : null} {/* 삼항 연산자 사용 */}
안녕하세요!{name}
</div>
);
}
Hello.defaultProps = {
name: '이름없음'
};
export default Hello;
isSpecial 이 true 이냐 false 이냐에 따라서 컴포넌트의 좌측에 * 표시를 보여주려고 하는데
이를 처리하는 기본적인 방법은 삼항 연산자를 사용하는 것이다.
isSpecial 값이 true라면 * 표를 보여주게 하고 false라면 null을 보여주게 하였다.
참고로 JSX에서 null과 undefined를 렌더링 하게 된다면 화면에 아무것도 나타나지 않게 된다.
실행 결과
isSpecial의 값이 true로 되어 있기에 화면에 *표시가 나타난다.
만약 값을 false로 바꾸면 아래와 같이 *표시가 나타나지 않는다.
'개발 공부한 내용 정리 > React' 카테고리의 다른 글
React- Input 상태 관리하기 (0) | 2020.08.29 |
---|---|
React- useState 를 통해 컴포넌트에서 바뀌는 값 관리하기 (0) | 2020.08.28 |
React- props (0) | 2020.08.26 |
React- JSX의 기본 규칙 (0) | 2020.08.25 |
React- 리액트 컴포넌트 만들기 (0) | 2020.08.24 |