HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
💌
JJong’s Archive
/
🏞️
Vue
/
이벤트 핸들링

이벤트 핸들링

Select
Nov 23, 2023
v-on이나 @ 으로 실현~!
 
  • v-on에 메소드 이름을 직접 바인딩 하거나 인라인 메소드 핸들러를 사용할 수 있음
    • @이벤트이름=”메소드이름” or @이벤트이름=”메소드이름()”
    • 메소드 이름을 직접 바인딩한다면 해당 메소드의 매개변수에 event 객체가 자동으로 넘어온다
    • 인라인 메소드 핸들러는 매개변수가 적어준 것만 넘어온다
      • 호출할 때 $event로 매개변수를 넣어주면 이벤트 객체를 넘겨줄 수 있다
      • 호출할 메소드가 두가지 이상일 때, 세미콜론이나 쉼표(vue3부터)로 구분해서 여러개 호출할 수 있다
      •  

이벤트 수식어

접미사로 event에 여러 메서드를 실행할 수 있다
  • .stop ⇒ ==event.stopPropagation(), 버블링 방지
  • .capture ⇒ == 옵션 {capture: true}, 캡쳐링 허용 (자식 이벤트가 실행되기 전에 부모 요소의 이벤트가 내려오면서 실행됨)
  • .prevent ⇒ == event.preventDefault()
  • .once ⇒ 이벤트를 최초 한번만 실행, 걸어둔 접미사들도 최초 한번만 유효하다
  • .self ⇒ event.currentTarget와 event.target가 같을 때만 이벤트 실행. 즉, 자식요소에는 이벤트를 걸지 않는다
  • .passive ⇒ == 옵션 {passive: true}, 이벤트 실행과 리스너 호출을 별개로 둠
@click.prevent.stop
체이닝 방식으로 여러 메서드를 한번에 실행 가능
 

키 수식어

  • 키보드 이벤트(keyup, keydown 등)일 때 키 수식어를 통해 ‘event.key’를 지정할 수 있다
  • 역시 체이닝 방식으로 여러 수식어를 연결해서, 해당 키를 동시에 눌러야 실행될 수 있게 한다
@keydown.enter @keydown.esc @keydown.ctrl @keyup.arrow-down
키 목록 참고 : https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values
 

.exact 수식어

키이벤트의 연결되어 있는 수식어만 눌렀을 때 리스너 동작, 연결되어 있지 않은 키와 같이 누르면 동작하지 않음
<!-- Ctrl과 함께 Alt 또는 Shift를 누른 상태에서도 클릭하면 실행됩니다. --> <button @click.ctrl="onClick">A</button> <!-- 오직 Ctrl만 누른 상태에서 클릭해야 실행됩니다. --> <button @click.ctrl.exact="onCtrlClick">A</button> <!-- 시스템 입력키를 누르지 않고 클릭해야지만 실행됩니다. --> <button @click.exact="onClick">A</button>
 

마우스 버튼 수식어

  • .left : 왼쪽 마우스
  • .right : 오른쪽 마우스
  • .middle : 휠