[React] ๐Ÿ“– ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง

์–ธ์ง€ยท2024๋…„ 11์›” 8์ผ

React

๋ชฉ๋ก ๋ณด๊ธฐ
5/13
post-thumbnail

1. Event Handling ์ด๋ž€?

  • Event : ์›น ๋‚ด๋ถ€์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ํ–‰๋™
    ex) ๋ฒ„ํŠผ ํด๋ฆญ, ๋ฉ”์„ธ์ง€ ์ž…๋ ฅ, ์Šคํฌ๋กค ๋“ฑ๋“ฑ
  • Handling : ๋‹ค๋ฃจ๋‹ค, ์ทจ๊ธ‰ํ•˜๋‹ค, ์ฒ˜๋ฆฌํ•˜๋‹ค
  • Event Handling
    : ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๊ทธ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒƒ
    ex) ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๊ฒฝ๊ณ ์ฐฝ ๋…ธ์ถœ

๐Ÿ“ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง ์˜ˆ์‹œ

onClick={() => {
  console.log(text);
}}

1-1. ์ฃผ์š” Event Handling ์ข…๋ฅ˜

์ด๋ฒคํŠธ์„ค๋ช…
mouse---
click์š”์†Œ๋ฅผ ํด๋ฆญ
dbclick์š”์†Œ๋ฅผ ๋”๋ธ”ํด๋ฆญ
mouseover์š”์†Œ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ค๋ฒ„ํ–ˆ์„ ๊ฒฝ์šฐ
mouseout์š”์†Œ์— ์žˆ๋Š” ๋งˆ์šฐ์Šค๋ฅผ ์š”์†Œ์—์„œ ๋ฒ—์–ด๋‚ฌ์„ ๊ฒฝ์šฐ
mousedown์š”์†Œ๋ฅผ ๋ˆŒ๋ €์„ ๊ฒฝ์šฐ
mouseup์š”์†Œ๋ฅผ ๋ˆŒ๋ €๋‹ค๊ฐ€ ๋–ผ์—ˆ์„ ๊ฒฝ์šฐ
key---
keydownํ‚ค๋ฅผ ๋ˆŒ๋ €์„ ๊ฒฝ์šฐ
keyupํ‚ค๋ฅผ ๋ˆŒ๋ €๋‹ค๊ฐ€ ๋–ผ์—ˆ์„ ๊ฒฝ์šฐ
keypressํ‚ค๋ฅผ ๋ˆ„๋ฅธ ์ƒํƒœ์ธ ๊ฒฝ์šฐ

2. Event Handling ์˜ˆ์ œ

2-1. ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ Console ์ฐฝ์— ๋ฒ„ํŠผ text ์ถœ๋ ฅ

{()=>{}} : ํ™”์‚ดํ‘œ๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰

2-1-1. ๋งค๊ฐœ๋ณ€์ˆ˜ ์‚ฌ์šฉ

<button
  onClick={() => {
   console.log(text);
  }}
>
</button>

2-1-1. ํ•จ์ˆ˜ ์‚ฌ์šฉ

 const onClickButton = () => {
    console.log(text);
 };
  return (
    <button onClick={onClickButton}>

3. ์ด๋ฒคํŠธ ๊ฐ์ฒด

: ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ ํ˜ธ์ถœ๋œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜์— ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ด๋ฒคํŠธ ๊ฐ์ฒด๋ผ๋Š” ๊ฒƒ์„ ์ œ๊ณต

<button
  onClick={() => {
   console.log(text);
  }}
>
</button>
  • ์—ฌ๊ธฐ์— ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ์ด๋ฒคํŠธ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
<button
  onClick={(e) => {
   console.log(e);
   console.log(text);
  }}
>
</button>
  • ์ž„์˜ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์•„๋ž˜์˜ ์ด๋ฏธ์ง€ ๊ฐ™์ด ์ด๋ฒคํŠธ ๊ฐ์ฒด๊ฐ€ console์— ์ถœ๋ ฅ๋œ๋‹ค.

๐Ÿ“ SyntheticBaseEvent๋ž€?
: ํ•ฉ์„ฑ ์ด๋ฒคํŠธ ๊ฐ์ฒด๋กœ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์˜ ์ด๋ฒคํŠธ ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜์˜ ํฌ๋งท์œผ๋กœ ํ†ต์ผํ•œ ํ˜•ํƒœ๋ฅผ ์˜๋ฏธ
: ์—ฌ๊ธฐ ์•ˆ์—๋Š” ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ์˜ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์ ธ ์žˆ๋‹ค.

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