Props(Properties)๋?
๐ Props ๋?
Props๋ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ๊ณผ์ ์์ ํน์ ๊ฐ์ ์ ๋ฌํ๋ ์ญํ ์ ์ํํฉ๋๋ค.
- Props๋ ์ธ๋ถ์์ ์ ๊ณต๋ฐ์ ๊ฐ์ ์ปดํฌ๋ํธ์ ์ ๋ฌํฉ๋๋ค.
- ์์ ์ปดํฌ๋ํธ๊ฐ ํ์ ์ปดํฌ๋ํธ์ ๊ฐ์ ์ ๋ฌํ ๋ ์ฌ์ฉํฉ๋๋ค.(๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ)
- ํ๋กํผํฐ๋ ์์ ํ ์ ์์ต๋๋ค.
๐ ์ Props๋ฅผ ์ฌ์ฉํ ๊น?
๊ฐ์ฅ ํฐ ์ด์ ๋ ์ปดํฌ๋ํธ์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ํฉ์ ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ์ ๋ง๊ฒ UI๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค.
// App.js
import React from "react";
import Hello from "./Hello";
import Wrapper from "./Wrapper";
function App() {
return (
<Wrapper>
<Hello name="react" color="red" />
<Hello color="pink" />
</Wrapper>
);
}
export default App;
Hello
์ปดํฌ๋ํธ์์ ํ๊ทธ์ ์์ฑ๊ฐ์ ์ฌ์ฉํ๊ธฐ ์ํด ํ๋ผ๋ฏธํฐ์ props
์ ์
๋ ฅํฉ๋๋ค.
import React from "react";
function Hello(props) {
// ์ปดํฌ๋ํธ ์ด๋ฆ์ ๋๋ฌธ์๋ก ์์
console.log(props);
return (
<div
style=
>
์๋
ํ์ธ์ {props.name}
</div>
);
}
Hello.defaultProps = {
// ํน์ ๊ฐ์ ๋น ๋จ๋ ธ์๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํ ๊ฐ
name: "์ด๋ฆ์์",
};
export default Hello; // Hello๋ผ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ด๋ณด๋ธ๋ค.
๐ props.children
์ปดํฌ๋ํธ ํ๊ทธ ์ฌ์ด์ ๋ฃ์ ๊ฐ์ ์กฐํํ๊ณ ์ถ์ ๋ props.children
์ ์ฌ์ฉํฉ๋๋ค.
import React from "react";
function Wrapper({ children }) {
const style = {
border: "2px solid black",
padding: "16px",
};
return <div style={style}>{children}</div>;
}
export default Wrapper;
์ ๋ฌ๋ ์ธ์๋ค์ด ์ค๋ธ์ ํธ๋ก ๋ฌถ์ด์ ธ์ LikeButton
์ปดํฌ๋ํธ ์์์ this.props
๋ก ํ ๋น๋ฉ๋๋ค.
- ๋๋ฆผ์ฝ๋ฉ
- https://goddaehee.tistory.com/300
- ๋ฒจ๋กํผํธ์ ํจ๊ปํ๋ ๋ชจ๋ ๋ฆฌ์กํธ
๐ฌ ์ต์ ๋๊ธ