๐ props
props๋ properties(์์ฑ)๋ฅผ ์ค์ธ ํํ์ ๋๋ค. ์ปดํฌ๋ํธ์ ์์ฑ์ ์ค์ ํ ๋ ์ฌ์ฉํ์ฃ . props์ ๊ฐ์ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์ค์ ํ ์ ์์ด์.
๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์
๋น๊ตฌ์กฐํ ํ ๋น ๋ฌธ๋ฒ(destructing assignment)์ ํตํด props ๋ด๋ถ ๊ฐ์ ์ถ์ถํ ์๋ ์์ด์. props๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์ ๋ฌ๋ฐ์ ๊ฐ์ ๊ฐ์ฒด์ ํํ๋ก ์์ ์ปดํฌ๋ํธ์ ์ ๋ฌํด์. ์ด๋ ๋น๊ตฌ์กฐํ ํ ๋น ๋ฌธ๋ฒ์ผ๋ก ํด์ฒดํ ์ ์๋ต๋๋ค.
๐ ๋น๊ตฌ์กฐํ ํ ๋น (๊ตฌ์กฐ ๋ถํด ํ ๋น)
๊ตฌ์กฐ ๋ถํด ํ ๋น์ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์์ฑ์ ํด์ฒดํ์ฌ ๊ทธ ๊ฐ์ ๊ฐ๋ณ ๋ณ์์ ๋ด์ ์ ์๊ฒ ํ๋ JavaScript ํํ์์ ๋๋ค.
MDN
๋น๊ตฌ์กฐํ ํ ๋น ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด props.content
์ ๊ฐ์ด ๊ฐ์ฒด ์ ๊ทผ๋ฒ์ธ ์ ํ๊ธฐ๋ฒ์ผ๋ก ์ ๊ทผํด์ผํด์. ๋น๊ตฌ์กฐํ ํ ๋น ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ฉด content
๋ง ์์ฑํด ํจ์ฌ ํธ๋ฆฌํด์.
// props ํค์๋ ์ฌ์ฉ
const Comment = ({ props }) => {
return <p>{props.content}</p>;
};
// ๋น๊ตฌ์กฐํ ํ ๋น ๋ฌธ๋ฒ ์ฌ์ฉ
const Comment = ({ content }) => {
return (
<p>{content}</p>
);
};
ํ์ฌ ์ ๊ฐ ํ๊ณ ์๋ ํ๋ก์ ํธ์์๋ props
์ ๋น๊ตฌ์กฐํ ํ ๋น์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ESLint
๊ฒฝ๊ณ ๊ฐ ๋จ๋๋ก ์ค์ ๋์ด์์ด์.
๊ทธ๋์ ์๋์ ๊ฐ์ด props
ํค์๋๋ฅผ ์ฌ์ฉํ์ ๋ ๊ฒฝ๊ณ ๋ฉ์ธ์ง๋ฅผ ํ์ธํ ์ ์์ด์.
๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ์์ฑ์ type์ ๊ฒ์ฌํ ์๋ ์์ด์. ์ด๋ propTypes
๋ฅผ ํตํด์ ๊ฐ๋ฅํ๋ต๋๋ค! ์์ ์ปดํฌ๋ํธ์์ ํด๋น ์์ฑ์ ์ด๋ค type์ ๊ฐ์ง ๊ฒ์ธ์ง ์ง์ ํด์. ๊ทธ๋ฆฌ๊ณ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ์ type๊ณผ ์ผ์นํ์ง ์์ผ๋ฉด console์ error๋ฉ์ธ์ง๋ฅผ ๋์๋๋ค.
์ด๋ฌํ type ๊ฒ์ฌ๋ ๋ฆฌ์กํธ๊ฐ ๋ ๋๋งํ๋ ๊ณผ์ ์์ ์๋ชป๋ ์์ฑ๊ฐ ํ์ ์ ๊ฒ์ฌํด ์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ๋ค๊ณ ํด์. ํ์ง๋ง ์ฑ๋ฅ์์ ์ด์ ๋ก ๊ฐ๋ฐ ๋ชจ๋์์๋ง ํ์ธํ ์ ์์ด์.
์ง์ ํ์ธํด๋ณด๊ธฐ ์ํด ํ์ฌ ํ๊ณ ์๋ ํ๋ก์ ํธ์ ํ ๋ฒ ์ ์ฉ์์ผ๋ดค์ด์.
// ์์ ์ปดํฌ๋ํธ
import React from "react";
import PropTypes from "prop-types";
const Comment = ({ content }) => {
return (
<p>{content}</p>
);
};
Comment.propTypes = {
content: PropTypes.number,
};
export default Comment;
- PropTypes ๋ถ๋ฌ์ค๊ธฐ
- PropTypes๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ด๋ฅผ importํด์ผ ์ฌ์ฉํ ์์์ด์.
์์์ปดํฌ๋ํธ.propTypes={ }
- ํด๋น ๊ฐ์ฒด ์์ ์ํ๋ ์์ฑ์ type์ ์ง์ ํด์.
content
๋ผ๋ ์์ฑ์ ์ฌ์ฉ์๊ฐ ์์ฑํ ๋๊ธ์ ๋ฐ์์์. error๋ฌธ๊ตฌ๊ฐ ์ ๋์ค๋์ง ํ์ธํ๊ธฐ ์ํด type์number
๋ก ์ง์ ํด๋๊ณ , ์ฑํ ์ฐฝ์ ๋ฌธ์๋ฅผ ์ณ๋ดค์ด์. ์๋์ ๊ฐ์ด type์number
๋ผ๊ณ ์์ํ๋๋ฐstring
์ด ๋์๋ค๋ ๊ฒฝ๊ณ ๋ฌธ๊ตฌ๋ฅผ ํ์ธํ ์ ์๋ต๋๋ค!
๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์
PropTypes ์ฐ๋ ์ด์ , ๋ฐฉ๋ฒ