props(properties): ์ด๋ ํ ๊ฐ์ ์ปดํฌ๋ํธ์๊ฒ ์ ๋ฌํด์ฃผ์ด์ผ ํ ๊ฒฝ์ฐ ์ฌ์ฉ
- ์ปดํฌ๋ํธ์ ์์ฑ์ ์ค์ ํ ๋ ์ฌ์ฉํ๋ ์์
- ์ฝ๊ธฐ ์ ์ฉ
- ์ปดํฌ๋ํธ ์์ฒด props๋ฅผ ์์ ํ๋ฉด ์๋จ
- ๋ชจ๋ React์ปดํฌ๋ํธ๋ ์์ ์ props๋ฅผ ๋ค๋ฃฐ ๋ ๋ฐ๋์ ์์ ํจ์์ฒ๋ผ ๋์ํด์ผํจ
- ์์ ๋๋ ๊ฒ์ state
1. ์ปดํฌ๋ํธ์๊ฒ ์ ๋ฌ๋๋ props๋ ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด ์กฐํ ๊ฐ๋ฅ, props๋ ๊ฐ์ฒด ํํ๋ก ์ ๋ฌ๋จ
import React from "react";
import Hello from "./Hello";
function App() {
return <Hello name="react" />;
}
export default App;
import React from "react";
function Hello(props) {
return <div>์๋
ํ์ธ์ {props.name}</div>;
}
export default Hello;
2. ํจ์์ ํ๋ผ๋ฏธํฐ์์ ๋น๊ตฌ์กฐํ ํ ๋น(๊ตฌ์กฐ ๋ถํด) ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ฉด ์กฐ๊ธ ๋ ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์์ฑ ๊ฐ๋ฅ
import React from "react";
function Hello({ color, name }) {
return <div style={{ color }}>์๋
ํ์ธ์ {name}</div>;
}
export default Hello;
3. defaultProps: ์ปดํฌ๋ํธ์ props๋ฅผ ์ง์ ํ์ง ์์์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ ๊ฐ ์ค์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉ
import React from "react";
function Hello({ color, name }) {
return <div style={{ color }}>์๋
ํ์ธ์ {name}</div>;
}
Hello.defaultProps = {
name: "์ด๋ฆ์์",
};
export default Hello;
import React from "react";
import Hello from "./Hello";
function App() {
return (
<>
<Hello name="react" color="red" />
<Hello color="pink" />
</>
);
}
export default App;

4. props.children: ์ปดํฌ๋ํธ ํ๊ทธ ์ฌ์ด์ ๋ฃ์ ๊ฐ ์กฐํํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉ
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;
import React from "react";
function Wrapper({ children }) {
const style = {
border: "2px solid black",
padding: "16px",
};
return <div style={style}>{children}</div>;
}
export default Wrapper;
'ํ๋ก ํธ์๋ > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| useRef (0) | 2022.11.16 |
|---|---|
| ๋ฆฌ์กํธ Hooks (0) | 2022.11.15 |
| ์กฐ๊ฑด๋ถ ๋ ๋๋ง (0) | 2022.11.15 |
| React ๊ธฐ์ด (0) | 2022.07.09 |
| React๋? (0) | 2022.07.08 |