๐ ๋ชฉ์ฐจ
- Introduction
- Conditional Rendering
- Condtional Props
- Conclusion
๐ Introduction
์๋ ํ์ธ์ ์ค๋์ react์์์ conditional rendering์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. conditional rendering์ vue์์์ v-if ๊ฐ์ ๋ ์์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ํธํ ๊ฑฐ ๊ฐ์์.
๐ Conditional Rendering
์ผ๋จ ๋จผ์ Hello์๊ฒ props๋ก isSpecial์ ๋๊ฒจ์ฃผ๊ฒ ์ต๋๋ค.
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" isSpecial={false} />
</Wrapper>
);
}
export default App;
์ด์ Hello component๋ฅผ ๋ณผ๊ฒ์. ์ด ๋๊ฐ์ง ๋ฐฉ๋ฒ ์ด์์ด์.
์ฒซ๋ฒ์งธ : ์ผํญ ์ฐ์ฐ์
import React from "react";
function Hello({ name, color, isSpecial }) {
return (
<div style={{ color }}>
<b>{isSpecial ? "speical" : "unspecial"}</b>
Hi, {name}
</div>
);
}
Hello.defaultProps = {
name: "์ด๋ฆ ์์",
};
export default Hello;
์ผํญ์ฐ์ฐ์๋ ๋ณดํต ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๋ ์ฌ์ฉํ๋ฉด ์ข์์.
ํ์ง๋ง ๋จ์ํ ๋ณด์ฌ์ฃผ๊ณ ์๋ณด์ฌ์ฃผ๋ ๋ถ๋ถ์ &&์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ข๋ ๊น๋ํ๊ฒ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์์ต๋๋ค.
๋๋ฒ์งธ : && ์ฐ์ฐ์
import React from "react";
function Hello({ name, color, isSpecial }) {
return (
<div style={{ color }}>
{isSpecial && <b>*</b>}
Hi, {name}
</div>
);
}
Hello.defaultProps = {
name: "์ด๋ฆ ์์",
};
export default Hello;
์์ ์ฝ๋๋ฅผ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด
{isSpecial ? <b>*</b> : null}
์ด๋ ๊ฒ ์ฌ์ฉํด์ผ ํ์ํ ๋ฐ... ์ข๋ ๊น๋ํ์ฃ ?
์ฐธ๊ณ ๋ก ์ผํญ ์ฐ์ฐ์์์ null, false, undefined๋ ๋๋๋ง์ ํ์ง ์์ต๋๋ค. ํ์ง๋ง 0โญ๏ธ์ ๋๋๋ง ๋๋ค๋ ์ฌ์ค์ ์์ง๋ง์ธ์.
๐ Conditional Props(์ค์ธ ๋ฒ์ )
์๋ ๋๋ก๋ผ๋ฉด ์ด๋ ๊ฒ ๋ด๋ ค์ฃผ๊ฒ ์ง๋ง...
import React from "react";
import Hello from "./Hello";
import Wrapper from "./Wrapper";
function App() {
return (
<Wrapper>
<Hello name="react" color="red" isSpecial={true} />
</Wrapper>
);
}
export default App;
import React from "react";
import Hello from "./Hello";
import Wrapper from "./Wrapper";
function App() {
return (
<Wrapper>
<Hello name="react" color="red" isSpecial />
</Wrapper>
);
}
export default App;
isSpecial๋ก ์ค์ฌ์ ์ธ์๋ ์์ด์. ๋๊ฐ์ด true๊ฐ์ด ๋ด๋ ค๊ฐ๊ฒ ๋ฉ๋๋ค.
๐ Conclusion
์ค๋์ ์กฐ๊ฑด๋ถ ๋๋๋ง์ ๋ํด์ ์์๋ณด์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก vue์ v-if๊ฐ ํธํ ๊ฑฐ ๊ฐ์ง๋ง react์์๋ react ๋ฐฉ์์ผ๋ก ํด์ค์ผํ๊ฒ ์ฃ ? ์ฌ์ค ๊ทผ๋ฐ javascript๊ฐ ํธํ ์ฌ๋์ด๋ผ๋ฉด react์ ์ฝ๋๊ฐ ์ข๋ ์ฝ๊ธฐ๋ ์ฌ์ธ์๋ ์์๊ฑฐ ๊ฐ์์. ๊ทธ๋ผ ๋ค์ ํฌ์คํ ์์ ๋ง๋์~~!
'React Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React - ๋ฐฐ์ด ๋๋๋ง (0) | 2020.12.03 |
---|---|
React - useRef ํน์ ๋ ์ง์ ํ๊ธฐ (0) | 2020.12.02 |
React - input ๊ด๋ฆฌ (0) | 2020.12.01 |
React - useState (0) | 2020.11.12 |
React - Props (0) | 2020.11.09 |