React/Velopert's React
[React] Study #5 | 조건부 렌더링
yevdev
2021. 9. 29. 21:37
💡조건부 렌더링?
- 특정 조건에 따라 다른 결과물을 렌더링 하는 것을 의미
Ex) App 컴포넌트에서 Hello 컴포넌트를 사용할 때, isSpecial 이라는 props를 설정
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="blue" />
</Wrapper>
);
}
export default App;
- true는 자바스크립트 값이기 때문에 중괄호로 감싸기
EX) Hello 컴포넌트에서는 isSpecial이 true냐 false 이냐에 따라서 컴포넌트 좌측에 * 표시를 보여주겠다
삼항연산자로~
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;
&& 연산자
Hello.js
import React from 'react';
function Hello({color, name, isSpecial}) {
return (
<div style={{color}}>
{ isSpecial && <b>*</b> }
제가 한번 해보겠습니다, {name}!
</div>
)
}
Hello.defaultProps = {
name : '이거슨 기본이름'
}
export default Hello;
- isSpecial이 false일땐, false이고, isSpecial이 true 일때, <b>*</b>이 된다.
❗️props 값 설정을 생략하면 ={true} 로 간주
import React from 'react';
import Hello from './Hello';
import Wrapper from "./Wrapper";
function App() {
return (
<Wrapper>
<Hello name="react" color="red" isSpecial/>
<Hello color="blue" />
</Wrapper>
);
}
export default App;
isSpecial={true}와 동일하다