web/react

[React] props

1. props๋ž€?

React์—์„œ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. React์˜ Data Flow๋Š” ๋‹จ๋ฐฉํ–ฅ ํ˜•์‹์œผ๋กœ ๋ถ€๋ชจ์—๊ฒŒ์„œ ์ž์‹์œผ๋กœ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๊พธ๋กœ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ, props์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์€ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ ์˜ค์ง ์•ˆ์— ์žˆ๋Š” ๊ฐ’์„ ๊บผ๋‚ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋งŒ ์žˆ๋‹ค.

 

2. props ์‚ฌ์šฉ ์˜ˆ์‹œ

2-1. Hello ์ปดํฌ๋„ŒํŠธ์—์„œ name ๊ฐ’ ์‚ฌ์šฉํ•˜๊ธฐ

๐ŸŒ  App.js

import React from 'react';
import Hello from './Hello';

function App() {
    return (
    	<Hello name="react" />
    );
}

export default App;

 

๐ŸŒ  Hello.js

import React from "react";

function Hello(props) {
    return <div>์•ˆ๋…•ํ•˜์„ธ์š” {props.name}</div>
}

export default Hello;

 

2-2. ์—ฌ๋Ÿฌ ๊ฐœ์˜ props, ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น

๐ŸŒ  App.js

import React from 'react';
import Hello from './Hello';

function App() {
    return (
    	<Hello name="react" color="red" />
    );
}

export default App;

 

๐ŸŒ  Hello.js

import React from "react";

function Hello(props) {
    return <div style={{color: props.color}}>์•ˆ๋…•ํ•˜์„ธ์š” {props.name}</div>
}

export default Hello;

 

๐ŸŒ  ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น(๊ตฌ์กฐ ๋ถ„ํ•ด) ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•œ Hello.js

import React from "react";

function Hello({color, name}) {
    return <div style={{color}}>์•ˆ๋…•ํ•˜์„ธ์š” {name}</div>
}

export default Hello;
  • ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด, props ๋‚ด๋ถ€์˜ ๊ฐ’์„ ์กฐํšŒํ•  ๋•Œ props. ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

์ฐธ๊ณ 

- https://velog.io/@hytenic/React-props%EC%99%80-state-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

- https://react.vlpt.us/basic/05-props.html

'web > react' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[React] useEffect  (0) 2021.09.15
[React] ๋ฆฌ์•กํŠธ ์‹œ์ž‘ํ•˜๊ธฐ  (0) 2021.09.13
[React] ์ปดํฌ๋„ŒํŠธ์™€ state  (0) 2021.09.13