๋ Œ๋”๋ง ๊ทธ๋ฆฌ๊ณ  ์ปค๋ฐ‹

2025. 6. 25. 18:29ยท๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React

๋ฆฌ์•กํŠธ ํ™”๋ฉด ์—…๋ฐ์ดํŠธ, ์„ธ ๋‹จ๊ณ„๋กœ ์ดํ•ดํ•˜๊ธฐ

1. ํŠธ๋ฆฌ๊ฑฐ (Trigger)

์ƒํƒœ(state)๋‚˜ props๊ฐ€ ๋ฐ”๋€” ๋•Œ(๋ฆฌ๋ Œ๋”) ๋ฆฌ์•กํŠธ๊ฐ€ "ํ™”๋ฉด์„ ๋ฐ”๊ฟ”์•ผ๊ฒ ๋‹ค"๋ผ๊ณ  ์‹ ํ˜ธ๋ฅผ ๋ฐ›๋Š” ์ˆœ๊ฐ„

import { useState } from "react";

export default function Counter() {
  const [count, setCount] = useState(0);

  // 1. ํŠธ๋ฆฌ๊ฑฐ: ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด setCount๊ฐ€ ์‹คํ–‰๋จ → ์ƒํƒœ ๋ณ€๊ฒฝ
  // 2. ๋ Œ๋”๋ง: Counter ํ•จ์ˆ˜๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰๋จ → ์ƒˆ ์„ค๊ณ„๋„(JSX) ์ƒ์„ฑ
  // 3. ์ปค๋ฐ‹: ๋ฐ”๋€ ๋ถ€๋ถ„๋งŒ ์‹ค์ œ ํ™”๋ฉด(DOM)์— ์ ์šฉ
  return (
    <button onClick={() => setCount(count + 1)}>
      {count}
    </button>
  );
}
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด `setCount(count + 1)`์ด ์‹คํ–‰.
  • ์ด๊ฒŒ ๋ฐ”๋กœ ํŠธ๋ฆฌ๊ฑฐ (์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ์—ˆ์œผ๋‹ˆ, ๋ฆฌ์•กํŠธ๊ฐ€ ๋ Œ๋”๋ง์„ ์‹œ์ž‘ํ•จ)

2. ๋ Œ๋”๋ง (Rendering)

"์ง€๊ธˆ ์ƒํƒœ๋กœ ํ™”๋ฉด์„ ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์ค„์ง€" ๋ฆฌ์•กํŠธ๊ฐ€ ์ปดํฌ๋„ŒํŠธ ํ•จ์ˆ˜๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ด์„œ ์„ค๊ณ„๋„(๊ฐ€์ƒ DOM)๋ฅผ ๋งŒ๋“œ๋Š” ๋‹จ๊ณ„

  • ์œ„ ์ฝ”๋“œ์—์„œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด
    React๊ฐ€ `Counter`ํ•จ์ˆ˜๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•ด์„œ
    `retrun (<button..>{counter}</button>)` ์„ ๋งŒ๋“ ๋‹ค.
  • ์ด ๋•Œ count๊ฐ€ 1๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค๋ฉด
    ์ƒˆ ์„ค๊ณ„๋„์—์„œ๋Š” `<button>1</button>`์ด ๋“ค์–ด์žˆ๋‹ค.
  • ์•„์ง ์‹ค์ œ ํ™”๋ฉด(DOM)์€ ์•ˆ ๋ฐ”๋€œ
    (๋ฆฌ์•กํŠธ๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ "์–ด๋–ป๊ฒŒ ๋ฐ”๊ฟ€์ง€" ๋ฏธ๋ฆฌ ๊ณ„์‚ฐ๋งŒ ํ•จ)

3. ์ปค๋ฐ‹ (Commit)

๋ Œ๋”๋ง ๋‹จ๊ณ„์—์„œ ๋ฐ”๊ฟ€ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด, ์‹ค์ œ DOM์— ์ ์šฉํ•˜๋Š” ๋‹จ๊ณ„

  • ๋ฆฌ์•กํŠธ๊ฐ€ ์ด์ „ ์„ค๊ณ„๋„์™€ ์ƒˆ ์„ค๊ณ„๋„๋ฅผ ๋น„๊ตํ•ด์„œ
    '๋ฒ„ํŠผ ๋‚ด์šฉ์ด 0์—์„œ 1๋กœ ๋ฐ”๋€Œ์—ˆ๋„ค?' ๋ผ๊ณ  ํŒ๋‹จ
  • ์‹ค์ œ๋กœ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์˜ ๋ฒ„ํŠผ ํ…์ŠคํŠธ๋ฅผ 1๋กœ ๋ฐ”๊ฟˆ

 

์ดํ•ดํ–ˆ๋Š”์ง€ ์ฒดํฌโœ…

[ํŠธ๋ฆฌ๊ฑฐ]์ฒ˜์Œ ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚  ๋•Œ๋„ ํŠธ๋ฆฌ๊ฑฐ(๋ Œ๋”๋ง์„ ์‹œ์ž‘ํ•˜๋Š” ์‹ ํ˜ธ) → ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์„œ count๊ฐ€ ๋ฐ”๋€Œ๋Š” ์ˆœ๊ฐ„๋„ ํŠธ๋ฆฌ๊ฑฐ
(์ฆ‰, "ํ™”๋ฉด์„ ๋ฐ”๊ฟ”์•ผ ํ•  ์ด์œ (์‹ ํ˜ธ)"๊ฐ€ ์ƒ๊ธฐ๋Š” ๋ชจ๋“  ์ˆœ๊ฐ„์ด ํŠธ๋ฆฌ๊ฑฐ์ด๋‹ค.)

→ [๋ Œ๋”๋ง]๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์„œ count๊ฐ€ ๋ฐ”๋€Œ๋ฉด, React๊ฐ€ ์ปดํฌ๋„ŒํŠธ ํ•จ์ˆ˜๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ → ์ง€๊ธˆ ์ƒํƒœ(count + 1)๋กœ ํ™”๋ฉด์„ ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์ค„์ง€ ๊ฐ€์ƒDOM(์„ค๊ณ„๋„)๋ฅผ ๋งŒ๋“ ๋‹ค.

→ [๋น„๊ต]์ด์ „ ๊ฐ€์ƒDOM๊ณผ ์ƒˆ ๊ฐ€์ƒ DOM์„ ๋น„๊ตํ•ด [์ปค๋ฐ‹]๋ฐ”๋€ ๋ถ€๋ถ„๋งŒ ํ™”๋ฉด์— ๋ฐ˜์˜

 

1. ํŠธ๋ฆฌ๊ฑฐ: ์ƒํƒœ๋‚˜ props๊ฐ€ ๋ฐ”๋€Œ๋Š” ์‹ ํ˜ธ(์ฒ˜์Œ ๋ Œ๋”, ๋ฒ„ํŠผ ํด๋ฆญ ๋“ฑ)
2. ๋ Œ๋”๋ง: ์ƒˆ ๊ฐ€์ƒDOM(์„ค๊ณ„๋„) ๋งŒ๋“ค๊ธฐ
3. ๋น„๊ต: ์ด์ „ ์„ค๊ณ„๋„์™€ ์ƒˆ ์„ค๊ณ„๋„ ๋น„๊ต
4. ์ปค๋ฐ‹: ๋ฐ”๋€ ๋ถ€๋ถ„๋งŒ ์‹ค์ œ ํ™”๋ฉด์— ์ ์šฉ
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY/React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ์Šค๋ƒ…์ƒท์œผ๋กœ์„œ์˜ State / state ์—…๋ฐ์ดํŠธ ํ
  • useState : ๊ฐ์ฒด
  • (์˜ˆ์ œ๋ฌธ์ œํ’€๊ธฐ) useState : ๋ฐฐ์—ด
  • useState
jmjm
jmjm
  • jmjm
    /* jmjmjm */
    jmjm
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (136)
      • ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ปSTUDY (97)
        • HTML (9)
        • CSS (25)
        • SASS (4)
        • JavaScript (18)
        • jQuery (9)
        • Publishing (8)
        • Git (11)
        • React (11)
        • Vue (0)
        • ์›น์ ‘๊ทผ์„ฑ (1)
        • Gulp (1)
      • ๐ŸฃcodeLab (28)
      • ๐ŸŒˆetc (8)
      • ๐Ÿฅฐ ์ผ์ƒ (2)
      • ๐ŸŒŸ์ฝ์–ด๋ณด๊ธฐ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‘œํ˜„์‹๋ฌธ
    HTML Form
    ํ˜•์ œ์ธ์ ‘์ž display none
    sass compiler
    ์•„์ฝ”๋””์–ธ๋ฉ”๋‰ด
    react import export
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‘œํ˜„์‹ ๋ฌธ
    javascript ์ปฌ๋ ‰์…˜
    ๋ง์ค„์ž„ hover
    ํ˜•์ œ์ธ์ ‘์ž ์•ˆ๋˜๋Š” ์ด์œ 
    ํ˜•์ œ์ธ์ ‘์ž
    ๋ง์ค„์ž„ ํ˜ธ๋ฒ„
    css ๊ฐ€์ƒ์„ ํƒ์ž
    ๋ง์ค„์ž„ ํˆดํŒ
    css ํ˜•์ œ์ธ์ ‘์ž ์•ˆ๋ผ์š”
    CSS ์„ ํƒ์ž
    javascript ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น
    css flex
    vscode ๋‹จ์ถ•ํ‚ค
    html collection
    javascript nodelist
    sass
    ๋ง์ค„์ž„ tooltip
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ปฌ๋ ‰์…˜
    sticky jsfiddle
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น
    ์›น์ ‘๊ทผ์„ฑ
    ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น ์ข…๋ฅ˜
    javascript htmlcollection nodelist
    javascript htmlcollection
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
jmjm
๋ Œ๋”๋ง ๊ทธ๋ฆฌ๊ณ  ์ปค๋ฐ‹
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”