조건부 렌더링
조건부 렌더링이란, 특정 조건에 따라 다른 결과물을 렌더링 하는 것을 의미한다.
App.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import React from 'react';
import Hello from './Hello';
import Wrapper from './Wrapper';
function App() {
return (
<Wrapper>
<Hello name="react" color="red" isSpecial={true}/>
<Hello color="pink" />
</Wrapper>
)
}
export default App;
|
cs |
Hello.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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;
|
cs |
여기서 삼항연산자로
isSpecial이 true이면 <b>*</b>를 화면에 보여주고
false라면 아무것도 안보여주게 된다.
참고로 JSX 에서 null, false, undefined 를 렌더링하게 된다면 아무것도 나타나지 않게 된다.
- 첫번째 Hello컴포넌트에서는 true를 반환하니까 *이보이고
- 두번째 Hello컴포넌트에서는 아무것도 주지않으니까 아무것도 나타나지 않는다.
{ isSpecial ? <b>*</b> : null }
이 코드는
{isSpecial && <b>*</b>}
이렇게 바꿀 수 있다.
isSpecial이 true일때 <b>*</b>를 반환하는 것이다.
그리고 false일때는 아무것도 안한다.
또 하나!
boolean값을 넘겨줄때 변수 명만 입력하면 true를 넘겨주게 된다.
728x90
'WEB > REACT' 카테고리의 다른 글
[REACT] input상태 관리하기, input값 나타내고 초기화하기 (0) | 2021.07.02 |
---|---|
[REACT] 함수형 컴포넌트에서 상태값 가지기 변화하기 useState (0) | 2021.07.02 |
[REACT] props를 통해 컴포넌트 값 전달, defaultProps 기본값 설정, props.children 컴포넌트 태그 사이의 값 렌더링 (0) | 2021.07.02 |
[REACT] 리액트가 만들어진 배경, 리액트가 뭐냐?! (0) | 2021.07.01 |
[REACT] 스피너를 액션이 일어나기전에 보여주기/ 단어 추가하기전에 스피너 보여주기 (0) | 2021.06.30 |