๐Ÿ“Frontend/๐Ÿ“˜React

[React] State, Props

Hoon2 2022. 7. 26. 18:06
728x90

State

import React, { useState } from 'react';

 const [๊ธ€์ œ๋ชฉ, ๊ธ€์ œ๋ชฉ๋ณ€๊ฒฝ] = useState([]);
 
 <h4>{ ๊ธ€์ œ๋ชฉ }</h4>
  • state๋Š” ๋ณ€๋™์‚ฌํ•ญ์ด ์ƒ๊ธฐ๋ฉด state์“ฐ๋Š” html๋„ ์ž๋™์œผ๋กœ ์žฌ๋ Œ๋”๋ง 
let [ ๋”ฐ๋ด‰, ๋”ฐ๋ด‰๋ณ€๊ฒฝ ] = useState(0);

state๋งŒ๋“ค ๋•Œ 2๊ฐœ๊นŒ์ง€ ์ž‘๋ช…ํ•  ์ˆ˜ ์žˆ๋Œ”๋Š”๋ฐ, ๋‘๋ฒˆ์งธ ์ž‘๋ช…ํ•œ๊ฑด state ๋ณ€๊ฒฝ์„ ๋„์™€์ฃผ๋Š” ํ•จ์ˆ˜

๋”ฐ๋ด‰๋ณ€๊ฒฝ(์ƒˆ๋กœ์šดstate)

์˜ˆ์‹œ

function App(){
  
  let [ ๋”ฐ๋ด‰ ] = useState(0);
  return (
    <h4> { ๊ธ€์ œ๋ชฉ[0] } <span onClick={ ()=>{ ๋”ฐ๋ด‰ = ๋”ฐ๋ด‰ + 1 } } >๐Ÿ‘</span> { ๋”ฐ๋ด‰ }</h4>
  )
}

* ... :  ๋ฐฐ์—ด ๋ฒ—๊ธฐ๊ธฐ 

 

Props

 

props๋กœ ๋ถ€๋ชจ -> ์ž์‹ state ์ „์†กํ•˜๋Š” ๋ฒ• 

  • 1. ์ž์‹์ปดํฌ๋„ŒํŠธ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์— ๊ฐ€์„œ <์ž์‹์ปดํฌ๋„ŒํŠธ ์ž‘๋ช…={state์ด๋ฆ„} /> 
  • 2. ์ž์‹์ปดํฌ๋„ŒํŠธ ๋งŒ๋“œ๋Š” function์œผ๋กœ ๊ฐ€์„œ props๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๋“ฑ๋ก ํ›„ props.์ž‘๋ช… ์‚ฌ์šฉ

 

function App (){
  let [๊ธ€์ œ๋ชฉ, ๊ธ€์ œ๋ชฉ๋ณ€๊ฒฝ] = useState(['๋‚จ์ž์ฝ”ํŠธ ์ถ”์ฒœ', '๊ฐ•๋‚จ ์šฐ๋™๋ง›์ง‘', 'ํŒŒ์ด์ฌ๋…ํ•™']);
  return (
    <div>
      <Modal ๊ธ€์ œ๋ชฉ={๊ธ€์ œ๋ชฉ}></Modal>
    </div>
  )
}

function Modal(props){
  return (
    <div className="modal">
      <h4>{ props.๊ธ€์ œ๋ชฉ[0] }</h4>
      <p>๋‚ ์งœ</p>
      <p>์ƒ์„ธ๋‚ด์šฉ</p>
    </div>
  )
}
  • 1. ์ž์‹์ปดํฌ๋„ŒํŠธ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์— ๊ฐ€์„œ <์ž์‹์ปดํฌ๋„ŒํŠธ ์ž‘๋ช…={state์ด๋ฆ„} /> 
  • 2. ์ž์‹์ปดํฌ๋„ŒํŠธ ๋งŒ๋“œ๋Š” ๊ณณ์— ๊ฐ€์„œ props๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๋“ฑ๋ก ํ›„ props.์ž‘๋ช… ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
728x90