์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Props
- ์ฝ๋ฉํ ์คํธ
- fetch API
- Gatsby
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐ๋ธ์ฝ์ค
- ํ๋ก ํธ์๋
- ์๊ณ ๋ฆฌ์ฆ
- Flex
- float
- ๋ธ๋ก๊ทธ
- REACT
- history api
- CSS
- useEffect
- useRef
- ์๋ฐ์คํฌ๋ฆฝํธ
- position
- Today
- Total
Daehyunii's Dev-blog
์ปดํฌ๋ํธ ํน์ง๋ค ๋ณธ๋ฌธ
ํจ์ํ ์ปดํฌ๋ํธ์ ํด๋์คํ ์ปดํฌ๋ํธ์ ์ฐจ์ด์
1. ํด๋์คํ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ state ๊ธฐ๋ฅ, ๋ผ์ดํ ์ฌ์ดํด ๊ธฐ๋ฅ์ ์ฌ์ฉ ๋ฐ ์์ ๋ฉ์๋ ์ ์๊ฐ ๊ฐ๋ฅํ๋ค.
2. ํจ์ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ํด๋์คํ ์ปดํฌ๋ํธ์ ๋นํด ๋ฉ๋ชจ๋ฆฌ ์์์ ๋ ์ฌ์ฉํ๋ค.(์ ์๋ฏธํ ์ฐจ์ด๋ ์๋๋ผ๊ณ ํจ)
3. ํจ์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐฐํฌํ ๋ ๊ฒฐ๊ณผ๋ฌผ์ ํ์ผ ํฌ๊ธฐ๊ฐ ๋ ์๋ค.(์ ์๋ฏธํ ์ฐจ์ด๋ ์๋๋ผ๊ณ ํจ)
4. ํจ์ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ์๋ ํด๋์คํ ์ปดํฌ๋ํธ์์์ ๋ผ์ดํ ์ฌ์ดํด ๊ธฐ๋ฅ ๋์ Hooks๋ฅผ ํตํด ํด๊ฒฐ ๊ฐ๋ฅํ๋ค.
props ๊ธฐ๋ณธ๊ฐ ์ค์ : defaultProps
๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก ๋ถํฐ prop์ ์ ๋ฌ ๋ฐ์ง ์์ ๊ฒฝ์ฐ์ defaultProps๋ฅผ ์ค์ ํ ์ ์๋ค.
const MyComponent = (props) => {
return <div>์๋
ํ์ธ์, {props.name}์
๋๋ค.</div>;
}
MyComponent.defaultProps = {
name: '์ฐ๋ํ'
}
propTypes๋ฅผ ํตํ props ๊ฒ์ฆ
์ปดํฌ๋ํธ์ ํ์ props๋ฅผ ์ง์ ํ๊ฑฐ๋ props์ ํ์ ์ ์ง์ ํ ๋๋ propTypes๋ฅผ ์ฌ์ฉํ๋ค. propTypes๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ฐ์ ์ฝ๋ ์๋จ์ import ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ถ๋ฌ์์ผ ํ๋ค.
import PropTypes from 'prop-types';
const MyComponent = ({name}) => {
return (...);
};
MyComponent.propTypes = {
name: PropTypes.string
};
export default MyComponent;
๋ง์ฝ props๊ฐ propTypes์์ ์ง์ ํ ํํ์ ์ผ์นํ์ง ์๋๋ค๋ฉด console์ฐฝ์์ ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค.
isRequired๋ฅผ ์ฌ์ฉํ์ฌ ํ์ propTypes ์ค์
import PropTypes from 'prop-types';
const MyComponent = ({name}) => {
return (...);
};
MyComponent.propTypes = {
name: PropTypes.string.isRequired
};
export default MyComponent;
๋ง์ฝ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ props๋ฅผ ๋๊ฒจ์ฃผ์ง ์์ผ๋ฉด console์ฐฝ์์ ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค.
๊ทธ ์ธ ํน์ง
props์ state๋ ๋ ๋ค ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ๊ฑฐ๋ ๋ ๋๋งํ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์์ด ๋น์ทํด ๋ณด์ผ ์ ์์ง๋ง, ๊ทธ ์ญํ ์ด ๋งค์ฐ ๋ค๋ฅด๋ค๋ ์ ์ ๊ธฐ์ตํ์. props๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ์ค์ ํ๊ณ state๋ ์ปดํฌ๋ํธ ์์ฒด์ ์ผ๋ก ์ง๋ ๊ฐ์ผ๋ก ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๊ฐ์ ์ ๋ฐ์ดํธํ ์ ์๋ค. ์ฐธ๊ณ ๋ก ๋ฆฌ์กํธ ๊ฐ๋ฐํ์์๋ ํจ์ํ ์ปดํฌ๋ํธ๋ก ๊ฐ๋ฐํ ๊ฒ์ ๊ถ์ฅํ๋ค๋ ์ ๋ ๊ธฐ์ตํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
'๐ Language & CS knowledge > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ref: DOM์ ์ด๋ฆ ๋ฌ๊ธฐ (0) | 2022.12.22 |
---|---|
์ด๋ฒคํธ ํธ๋ค๋ง (0) | 2022.12.22 |
JSX๋? (0) | 2022.12.20 |
์ปดํฌ๋ํธ ์คํ์ผ๋ง, useMemo, useCallback, Custom Hook (0) | 2022.12.19 |
์ฌ์ฉ์ฌ๋ก - ํ์ด์ง๋ค์ด์ ๋ง๋ค๊ธฐ (0) | 2022.12.18 |