[๐ŸŽ์ฝ”๋”ฉ์• ํ”Œ ๊ฐ•์˜์š”์•ฝ] React์—์„œ ๋ฒ„ํŠผ ๊ธฐ๋Šฅ๊ณผ State ๋ณ€๊ฒฝํ•˜๊ธฐ ๐Ÿ“ฑ

๐ŸŒˆ KJยท2025๋…„ 5์›” 9์ผ

codingapple

๋ชฉ๋ก ๋ณด๊ธฐ
4/23
post-thumbnail

๊ฐœ์š” ๐Ÿ“‹

์ด ๊ฐ•์˜๋Š” React์—์„œ ๋ฒ„ํŠผ์— ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  state๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ข‹์•„์š” ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์‹ค์Šตํ•ด ๋ด…๋‹ˆ๋‹ค.

์ฃผ์š” ๋‚ด์šฉ ๐Ÿ”

eslint ๊ฒฝ๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ โš ๏ธ

  • ํ„ฐ๋ฏธ๋„์ด๋‚˜ ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œ๋˜๋Š” ๋…ธ๋ž€์ƒ‰ warning์€ ๊ฐœ๋ฌด์‹œ ๊ฐ€๋Šฅ
  • eslint๋Š” ์ฝ”๋”ฉ ๊ด€์Šต์„ ๊ต์ •ํ•ด์ฃผ๋Š” ๋„๊ตฌ
  • ๋ฌด์‹œํ•˜๋ ค๋ฉด ํŒŒ์ผ ์ตœ์ƒ๋‹จ์— /*eslint-disable*/ ์ฃผ์„ ์ถ”๊ฐ€

์ข‹์•„์š” ๋ฒ„ํŠผ ๊ตฌํ˜„ํ•˜๊ธฐ ๐Ÿ‘

<h4>{๊ธ€์ œ๋ชฉ[0]} <span>๐Ÿ‘</span> 0</h4>
  • ์ž์ฃผ ๋ฐ”๋€” ๋‚ด์šฉ์€ state๋กœ ์ €์žฅ ํ•„์š”
  • ์ข‹์•„์š” ๊ฐฏ์ˆ˜๋Š” ๋ณ€๋™๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ state๋กœ ๊ด€๋ฆฌ

onClick ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๐Ÿ–ฑ๏ธ

// JSX์—์„œ์˜ ํด๋ฆญ ์ด๋ฒคํŠธ ๋ฌธ๋ฒ•
<div onClick={์‹คํ–‰ํ• ํ•จ์ˆ˜}>๋‚ด์šฉ</div>

์ค‘์š” ํฌ์ธํŠธ:
1. onClick์˜ C๊ฐ€ ๋Œ€๋ฌธ์ž
2. ์ค‘๊ด„ํ˜ธ {} ์‚ฌ์šฉ
3. ํ•จ์ˆ˜๋ฅผ ๋„ฃ์–ด์•ผ ํ•จ

ํ•จ์ˆ˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๐Ÿงฉ

// ๋ฐฉ๋ฒ• 1: ๋ฏธ๋ฆฌ ํ•จ์ˆ˜ ์ •์˜
function ํ•จ์ˆ˜์ž„() {
  console.log(1)
}
<div onClick={ํ•จ์ˆ˜์ž„}>์•ˆ๋…•ํ•˜์„ธ์š”</div>

// ๋ฐฉ๋ฒ• 2: ์ต๋ช… ํ•จ์ˆ˜ ์ง์ ‘ ์ž‘์„ฑ
<div onClick={function() { ์‹คํ–‰ํ• ์ฝ”๋“œ }}>
<div onClick={() => { ์‹คํ–‰ํ• ์ฝ”๋“œ }}>
  • () => {} ๋Š” function(){} ์™€ ๋™์ผํ•œ ๊ธฐ๋Šฅ

state ๋ณ€๊ฒฝํ•˜๋Š” ๋ฒ• โš›๏ธ

let [๋”ฐ๋ด‰, ๋”ฐ๋ด‰๋ณ€๊ฒฝ] = useState(0);

ํ•ต์‹ฌ:

  • state๋Š” ์ผ๋ฐ˜ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์ง์ ‘ ์ˆ˜์ • ๋ถˆ๊ฐ€ (๋”ฐ๋ด‰ = ๋”ฐ๋ด‰ + 1 โŒ)
  • state ๋ณ€๊ฒฝํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ
  • ๋”ฐ๋ด‰๋ณ€๊ฒฝ(์ƒˆ๋กœ์šดstate) ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉ
  • ์˜ˆ: ๋”ฐ๋ด‰๋ณ€๊ฒฝ(๋”ฐ๋ด‰ + 1)

์™„์„ฑ๋œ ์ข‹์•„์š” ๋ฒ„ํŠผ ์ฝ”๋“œ ๐Ÿ”„

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

์š”์•ฝ ์ •๋ฆฌ ๐Ÿ“Œ

  1. ํด๋ฆญ ์ด๋ฒคํŠธ: onClick={ํ•จ์ˆ˜} ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ
  2. state ๋ณ€๊ฒฝ: ๋ฐ˜๋“œ์‹œ state ๋ณ€๊ฒฝํ•จ์ˆ˜ ์‚ฌ์šฉ
  3. state ๋ณ€๊ฒฝํ•จ์ˆ˜๋Š” ๊ด„ํ˜ธ ์•ˆ์˜ ๊ฐ’์œผ๋กœ ๊ธฐ์กด state๋ฅผ ๋Œ€์ฒด

0๊ฐœ์˜ ๋Œ“๊ธ€