๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋ก ํŠธ์—”๋“œ/React

๋ฆฌ์•กํŠธ์˜ props

by alswlfl 2022. 11. 15.

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;

defaultProps์‚ฌ์šฉ ์˜ˆ์‹œ ๊ฒฐ๊ณผ

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