재밌게 ν•©μ‹œλ‹€

κΈ°λ‘ν•˜κΈ°, κ°€μ‹œν™”ν•˜κΈ°

Vanilla JS

ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμ—μ„œ ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜λŠ” 방법 두 가지

μ€λ˜λ”” 2022. 8. 17. 13:15

ν•¨μˆ˜μ˜ μš©λ„λŠ” 기본적으둜 λ°˜λ³΅λ˜λŠ” μ½”λ“œλ₯Ό μ€„μ΄λŠ” 것이닀.

FE κ°œλ°œμ— μžˆμ–΄ ν•¨μˆ˜μ˜ 리턴 κ°’μ—λŠ” 크게 두 μ’…λ₯˜κ°€ μžˆλ‹€.

  • μ—°μ‚°μ˜ κ²°κ³Ό
  • UI μš”μ†Œ
    이 쀑 μ˜€λŠ˜μ€ λ‘λ²ˆμ§Έ κ²½μš°μ— λŒ€ν•΄ 이야기λ₯Ό 해보렀고 ν•œλ‹€.

첫번째 νŒ¨ν„΄μ˜ 경우 μ˜μ‹ν•˜μ§€ μ•Šμ•„λ„ 곧잘 μ‚¬μš©ν•œλ‹€. κ·ΈλŸ¬λ‚˜ λ‘λ²ˆμ§Έ νŒ¨ν„΄μ˜ 경우 μš°λ¦¬μ—κ²Œ μ΅μˆ™ν•œ μˆ˜ν•™μ  ν•¨μˆ˜μ˜ κ°œλ…κ³Ό λ‹€μ†Œ 차이가 있기 λ•Œλ¬Έμ—, 사고방식을 μ˜μ‹μ μœΌλ‘œ ν™•μž₯ν•˜μ§€ μ•ŠμœΌλ©΄ ν™œμš©ν•˜κΈ° μ–΄λ ΅λ‹€.

μš°λ¦¬κ°€ μ•„λŠ” κ·Έ ν•¨μˆ˜

 

ν•¨μˆ˜κ°€ 값을 λ¦¬ν„΄ν•˜λŠ” 것은 λ‹¨μˆœνžˆ μ—°μ‚°μ˜ 결과값을 λ„μΆœν•˜λŠ” 게 μ•„λ‹ˆλ‹€. ν•¨μˆ˜μ˜ 호좜 뢀뢄이 리턴 κ°’μœΌλ‘œ λŒ€μ²΄λœλ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€.
즉, νŠΉμ • UI μš”μ†Œκ°€ λ°˜λ³΅λœλ‹€λ©΄ μš°λ¦¬λŠ” 이λ₯Ό μ—¬λŸ¬ 번 μž‘μ„±ν•˜λŠ” λŒ€μ‹  UIλ₯Ό λ¦¬ν„΄ν•˜λŠ” ν•¨μˆ˜λ₯Ό ν™œμš©ν•  수 μžˆλ‹€. ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•œ 뢀뢄에 μš°λ¦¬κ°€ μ›ν•˜λŠ” UIκ°€ λ“€μ–΄μ˜¬ 것이닀.

 

β—οΈμœ μ‚¬ν•œ μ½”λ“œκ°€ λ°˜λ³΅λœλ‹€λ©΄ 이λ₯Ό μž¬μ‚¬μš© κ°€λŠ₯ν•œ ν•¨μˆ˜λ‘œ λ§Œλ“€μž.

 

ν•¨μˆ˜μ˜ ν™œμš© μ˜ˆμ‹œ

  • Javascript querySelector
const espressonMenuName = document.querySelector(“#espresso-menu-name”).value;

document.querySelector(“#menu-submit-button”).addEventListener(“click”, addMenuName);

document.querySelector(“#menu-name”)”.addEventListener("k“ypress",”(e) => {
  if (e.key === “Enter"){
    addMenuName();
  }
});

document.querySelector() κ°€ λ°˜λ³΅λ˜λŠ” 것을 확인할 수 μžˆλ‹€.
μ΄λ ‡κ²Œ λ°˜λ³΅λ˜λŠ” μ½”λ“œλ₯Ό, ν•¨μˆ˜λ₯Ό ν™œμš©ν•΄ 쀄일 수 μžˆλ‹€.

UIμš”μ†Œλ₯Ό λ¦¬ν„΄ν•˜λŠ” 것은 μ•„λ‹ˆμ§€λ§Œ, μ½”λ“œμ˜ λ°˜λ³΅μ„ μ€„μΈλ‹€λŠ” μ μ—μ„œ ν•¨μˆ˜μ˜ μš©λ„λ₯Ό 잘 ν™œμš©ν–ˆλ‹€κ³  λ³Ό 수 μžˆλ‹€.

const $ = (selector) => document.querySelector(selector);

const espressonMenuName = $(“#espresso-menu-name”).value;

$(“#menu-submit-button”).addEventListener(“click”, addMenuName);

$(“#menu-name”)”.addEventListener("k“ypress",”(e) => {
  if (e.key === “E“ter”)”{
    addMenuName();
  }
});
  • Javascript [μš”μ†Œλͺ…]Template ν•¨μˆ˜
    정보λ₯Ό μž…λ ₯ λ°›μ•„ html elementλ₯Ό λ¦¬ν„΄ν•˜λŠ” ν•¨μˆ˜
  • ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈ
    λ„ˆλ¬΄ μžμ—°μŠ€λŸ½κ²Œ 써왔기 λ•Œλ¬Έμ— μ˜μ‹ν•˜μ§€ λͺ»ν–ˆμ§€λ§Œ, λ¦¬μ•‘νŠΈμ˜ ν•¨μˆ˜ν˜• μ»΄ν¬λ„ŒνŠΈλ„ 이와 λΉ„μŠ·ν•œ λ§₯락이닀. λ¦¬μ•‘νŠΈμ˜ μ»΄ν¬λ„ŒνŠΈλŠ” propsλΌλŠ” 인자λ₯Ό λ°›κ³ , 이λ₯Ό μ‚¬μš©ν•΄ UIμš”μ†Œ(jsx)λ₯Ό λ¦¬ν„΄ν•œλ‹€.

    μš°λ¦¬κ°€ ν•œ μ»΄ν¬λ„ŒνŠΈμ—μ„œ λ‹€λ₯Έ μ»΄ν¬λ„ŒνŠΈλ₯Ό importν•΄ μ‚¬μš©ν•˜λŠ” 것은, κ²°κ΅­ importν•œ (μ»΄ν¬λ„ŒνŠΈ)ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜κ³  ν•΄λ‹Ή ν•¨μˆ˜μ˜ 리턴값이 ν•¨μˆ˜ ν˜ΈμΆœλΆ€μ— λ“€μ–΄μ˜€κ²Œλ” λ§Œλ“œλŠ” 것과 κ°™λ‹€.