Skip to content

Latest commit

ย 

History

History
71 lines (53 loc) ยท 1.69 KB

JavaScript-full-stack23.md

File metadata and controls

71 lines (53 loc) ยท 1.69 KB

{ํ’€์Šคํƒ} JavaScript 23๊ฐ• - DOM events

React์˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

  • React๋Š” ํ™”๋ฉด์„ ๊ทธ๋ฆด๋ฟ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๊ฒƒ์€ ์•„๋‹˜
    • ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์€ ๊ฐœ๋ณ„ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
    • React์—์„œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋Š” ๋‚ด๊ฐ€ ๋‹ค ํ•จ์ˆ˜ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•จ
      • convention ์—†์Œ
      • ์ง์ ‘ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋กํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ณ  ํ•ด์•ผ ํ•จ

์ƒํ™ฉ์— ๋”ฐ๋ฅธ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

// ๊ณผ๊ฑฐ
if ($eles && $eles.length) {
}

// ํ˜„์žฌ
const $btn = $eles?.[0] || createBtn();

์ด๋ฒคํŠธ & ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ & ์ด๋ฒคํŠธ ํƒ€์ž…

// ๋ธŒ๋ผ์šฐ์ €์— ์ด๋ฒคํŠธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์žˆ์Œ
// ์ด๋ฒคํŠธ ํ๋„ ์žˆ์Œ; ์‹คํ–‰ ์‹œํ‚ฌ ์ด๋ฒคํŠธ ๋Œ€๊ธฐ์—ด

$btn.onclick = search;
$btn.addEventListener('click', fn);

$btn.addEventListener('click', (evt) => {
  // ๋ถ€๋ชจ ์š”์†Œ๋Š” ์ด๋ฒคํŠธ ์‹คํ–‰ X
  evt.stopPropagation();
  // submit ๋ฒ„ํŠผ์ผ ๊ฒฝ์šฐ
  // evt.preventDefault();
});

target vs. currentTarget

  • target; ์‹ค์ œ๋กœ ์ด๋ฒคํŠธ ๋ฐœ์ƒํ•œ DOM ์š”์†Œ
    • ์ด๋ฒคํŠธ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋จผ์ € ๋ฐ›์€ ๋†ˆ
  • currentTarget; ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ฐ”์ธ๋”ฉ ๋˜์–ด ์žˆ๋Š” ์š”์†Œ
    • ์ด๋ฒคํŠธ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹ค์ œ ์ฃผ์ธ๊ณต

์ด๋ฒคํŠธ ์ƒ์† ๊ตฌ์กฐ

  • Object
    • Event
      • AnimationEvent
      • ClipboardEvent
      • UIEvent
        • FocusEvent
        • MouseEvent
        • KeyboardEvent
        • InputEvent
          • ChangeEvent, ...

[Note]

  • ์ปดํฌ๋„ŒํŠธ; HTML์˜ ํ•œ ๋ญ‰์น˜
  • focus; ๋ฒ„๋ธ”๋ง ์•ˆ๋จ (๋ถ€๋ชจ ์š”์†Œ๋Š” ์ด๋ฒคํŠธ ์‹คํ–‰ X)
    • focusin; ๋ฒ„๋ธ”๋ง ๋จ (๋ถ€๋ชจ ์š”์†Œ๋„ ์ด๋ฒคํŠธ ์‹คํ–‰ O)
  • blur; ๋ฒ„๋ธ”๋ง ์•ˆ๋จ
    • focusout; ๋ฒ„๋ธ”๋ง ๋จ

Reference