๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Develop Study ๐Ÿ’ป

react study / props ๊ฐœ๋… ์ดํ•ด

728x90

app.js

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

function App() {
  const name = 'react';
  const style = {
    backgroundColor: 'black',
    color: 'aqua',
    fontSize: 24,
    padding: '1rem'
  }

  return (
    <>
      <Hello />
      <Hello />
      <Hello />
      <div style={style}>{name}</div>
      <div className="gray-box">{name}</div>
    </>
    
  );
}

export default App;

 

app.css

.gray-box {
  background: gray;
  width: 64px;
  height: 64px;
}

 

 

 

 

properties ๐Ÿ‘‰ props 

์–ด๋– ํ•œ ๊ฐ’์„ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌํ•ด ์ฃผ์–ด์•ผ ํ• ๋•Œ ์‚ฌ์šฉํ•จ

app.js

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

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

export default App;

 

name์ด๋ผ๋Š” ๊ฐ’์„ ์ „๋‹ฌํ•ด ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ

Hello.js์—์„œ props๋กœ ๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋ฉด๋œ๋‹ค

๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์ „๋‹ฌ๋˜๋‹ˆ name๊ฐ’์„ ์กฐํšŒํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด props.name์ด๋ผ ์น˜๋ฉด ๋จ

 

hello.js

import React from 'react';

function Hello(props) {
    return <div><h1> hello { props.name }</h1></div>
}

export default Hello;

 

 

 

 

 


 

์—ฌ๋Ÿฌ๊ฐœ์˜ props๋ฅผ ์ „๋‹ฌํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์–ด๋–จ๊นŒ 

app.js๋ฅผ ์ˆ˜์ •ํ•ด color๋ผ๋Š” ๊ฐ’์„ ์„ค์ • 

 

app.js

import './App.css';
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 }}>
        <h1> hello {props.name}</h1>
    </div>
}

export default Hello;

 

 

color๊ฐ’์„ ์ž˜ ๋„˜๊ฒจ๋ฐ›์•„ css์— ์ ์šฉ๋๋‹ค

 

props ๋‚ด๋ถ€์˜ ๊ฐ’์„ ์กฐํšŒ ํ•  ๋•Œ๋งˆ๋‹ค props.๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น์„ ํ†ตํ•ด์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ๋‹ค

 

hello.js ์ˆ˜์ •

import React from 'react';

function Hello({color, name}) {
    return <div style={{ color }}>
        <h1> hello {name}</h1>
    </div>
}

export default Hello;

 

color๊ฐ’์„ ์ž˜ ๋„˜๊ฒจ๋ฐ›์•„ css์— ์ ์šฉ๋๋‹ค

์ž˜ ๋œ๋‹ค

 

 

 

props๊ฐ€ ์žˆ์Œ์—๋„ ๊ฐ’์„ ๋”ฑํžˆ ๋„˜๊ฒจ๋ฐ›์ง€ ์•Š์•˜์„๋•Œ ๋œจ๋Š” ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•ด ๋‘๋Š” ๋ฒ•

hello.js์—์„œ defaultProps๋ฅผ ์„ค์ •ํ•ด ๋‘”๋‹ค

 

hello.js

import React from 'react';

function Hello({color, name}) {
    return <div style={{ color }}>
        <h1> hello {name}</h1>
    </div>
}


Hello.defaultProps = {
    name: "ํ™๊ธธ๋™"
}

export default Hello;

 

app.js

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

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

export default App;

๋‘๋ฒˆ์งธ Hello์ปดํฌ๋„ŒํŠธ์— name๊ฐ’์„ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š์•˜๋Š”๋ฐ๋„ hello.js์—์„œ defaultProps๋กœ ์„ค์ •ํ•ด๋‘” name๊ฐ’(ํ™๊ธธ๋™)์ด ๋“ค์–ด๊ฐ€ ์žˆ๋Š”๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค 

 


 

์ปดํฌ๋„ŒํŠธ ์•ˆ์˜ ๋‚ด์šฉ์„ ์กฐํšŒํ•˜๋ ค๋ฉด ๐Ÿ‘‰ children (์“ฐ์ผ๊ณณ์„ ์ •ํ•œ๋‹ค...์ด๋Ÿฐ ๋Š๋‚Œ)

 

Wrapper.js ํ•˜๋‚˜ ๋งŒ๋“ฌ

import React from 'react'

function Wrapper() {
    const style = {
        border: '2px solid black',
        padding: '16px'
    };

    return (
        <div style={style} >
            
        </div>
    )
}


export default Wrapper;

 

App.js ์ˆ˜์ •

import './App.css';
import React from 'react';
import Hello from './Hello';
import Wrapper from './Wrapper';

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

export default App;

Wrapper๋งŒ ํ•˜๋‚˜ ๋”ฐ๋กœ, Wrapper์•ˆ์— ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋„ฃ์€๊ฒƒ ๋”ฐ๋กœ ํ•ด์„œ ๋‘๊ฐœ ๋„ฃ์–ด์คฌ๋‹ค

์ƒ์ƒ๋งŒ ํ•ด๋ณด๋ฉด ๋„ค๋ชจ ๋ฐ•์Šค ํ•˜๋‚˜๋ž‘ ๋„ค๋ชจ๋ฐ•์Šค ํ•˜๋‚˜ ์—”์— Hello์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ฐํž๊ฒƒ ๊ฐ™์ง€๋งŒ~

์•ˆ๋‚˜์˜จ๋‹ค

 

์ปดํฌ๋„ŒํŠธ ํƒœ๊ทธ ์•ˆ์˜ ๊ฐ’์„ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” props.children์„ ์‚ฌ์šฉํ•œ๋‹ค

Wrapper.js ์ˆ˜์ •

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.vlpt.us/

 

๋ฒจ๋กœํผํŠธ์™€ ํ•จ๊ป˜ํ•˜๋Š” ๋ชจ๋˜ ๋ฆฌ์•กํŠธ · GitBook

๋ฒจ๋กœํผํŠธ์™€ ํ•จ๊ป˜ํ•˜๋Š” ๋ชจ๋˜ ๋ฆฌ์•กํŠธ ๋ณธ ๊ฐ•์˜์ž๋ฃŒ๋Š” ํŒจ์ŠคํŠธ์บ ํผ์Šค ์˜จ๋ผ์ธ ๊ฐ•์˜์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฆฌ์•กํŠธ ๊ฐ•์˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ•์˜ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด JavaScript ์˜ ๊ธฐ์ดˆ๋ฅผ ์ž˜ ์•Œ๊ณ ์žˆ

react.vlpt.us

 

 

๋ฒจ๋กœํผํŠธ์™€ ํ•จ๊ป˜ํ•˜๋Š” ๋ชจ๋˜ ๋ฆฌ์•กํŠธ · GitBook

๋ฒจ๋กœํผํŠธ์™€ ํ•จ๊ป˜ํ•˜๋Š” ๋ชจ๋˜ ๋ฆฌ์•กํŠธ ๋ณธ ๊ฐ•์˜์ž๋ฃŒ๋Š” ํŒจ์ŠคํŠธ์บ ํผ์Šค ์˜จ๋ผ์ธ ๊ฐ•์˜์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฆฌ์•กํŠธ ๊ฐ•์˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ•์˜ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด JavaScript ์˜ ๊ธฐ์ดˆ๋ฅผ ์ž˜ ์•Œ๊ณ ์žˆ

react.vlpt.us

 

728x90