ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Vue 이벤트 핸들링
    Vue/문법 2021. 6. 20. 11:23

     

    - 이벤트 청취

    • v-on 디렉티브는 @기호로, DOM 이벤트를 듣고 트리거 될 때와 JavaScript를 실행할 때 사용

     

    - 인라인 메소드 핸들러

    • 인수가 있을 경우 ()안에 추가
    • 이벤트 객체도 필요할 경우 $event 사용
    <button @click="warn('Form cannot be submitted yet.', $event)">
      Submit
    </button>
    methods: {
      warn(message, event) {
        // 네이티브 이벤트에 접근 할 수 있습니다.
        if (event) {
          event.preventDefault()
        }
        alert(message)
      }
    }

    - 복합 이벤트 핸들러

    • ,로 메소드를 나열
    • 인수가 없더라도 ()를 생략하면 정상적으로 동작하지 않음
    <!-- one()과 two() 둘다 버튼 클릭 이벤트를 실행할 수 있습니다.-->
    <button @click="one($event), two($event)">
      Submit
    </button>
    methods: {
      one(event) {
        // 첫번째 핸들러 로직...
      },
      two(event) {
        // 두번째 핸들러 로직...
      }
    }

    - 이벤트 수식어

    • 이벤트 수식어 종류
      • .stop, .prevent, .capture, .self, .once, .passive
      • 관련 코드가 동일한 순서로 생성되므로 수식어를 사용할 때 순서를 지정
        • @click.prevent.self : 모든 클릭 방지
        • @click.self.prevent: 엘리먼트 자체에 대한 클릭만 방지

    • 네이티브 DOM이벤트에 독점적인 다른 수식어들과 달리, .once 수식어는 component events에서도 사용 가능
    • .passive 수식어는 모바일 환경에서 성능향상에 도움
      • .passive 수식어와 .prevent 수식어를 함께 사용 금지
      • @wheel 이벤트는 마우스의 휠이 동작할 때 발생. passive와 같이 사용하면 좋음
    <!-- 클릭 이벤트 전파가 중단되었습니다. -->
    <a @click.stop="doThis"></a>
    
    <!-- 제출 이벤트가 페이지를 다시 로드하지 않습니다. -->
    <form @submit.prevent="onSubmit"></form>
    
    <!-- 수정자는 체이닝이 가능합니다. -->
    <a @click.stop.prevent="doThat"></a>
    
    <!-- 단순히 수식어만 사용이 가능합니다. -->
    <form @submit.prevent></form>
    
    <!-- 캡처 모드를 사용할 때 이벤트 리스너를 사용 가능합니다.-->
    <!--즉, 내부 엘리먼트를 대상으로 하는 이벤트가 해당 엘리먼트에서 처리되기 전에 여기서 처리합니다. -->
    <div @click.capture="doThis">...</div>
    
    <!-- event.target이 엘리먼트 자체인 경우에만 트리거를 처리합니다.-->
    <!-- 자식 엘리먼트에서는 처리되지 않습니다.-->
    <div @click.self="doThat">...</div>
    <!-- 클릭 이벤트는 최대한 한번에 트리거 됩니다.-->
    <a @click.once="doThis"></a>    
    <!-- 스크롤의 기본 이벤트를 취소할 수 없습니다. -->
    <!-- 바로, `onScroll`완료되는 것을 기다리는 것을 대신합니다.  -->
    <!-- 이 경우에`event.preventDefault()`를 포함하고 있습니다. -->
    <div @scroll.passive="onScroll">...</div>

    - 키 수식어

    • 키보드 이벤트를 청취할 때 사용
    • 유효 키 이름을 케밥 케이스로 변환하여 수식어로 사용
    • 키 명령어
      • .enter, .tab, .delete, .esc, .space, .up, .down, .left, .right 등

    - 시스템 수식어 키목록

    • 해당 수식어가 눌러진 경우에만 마우스 또는 키보드 이벤트 리스너를 트리거 할 수 있음
    • .ctrl, .alt, .shift, .meta
    • .meta는 메칸토시 키보드에서는 command key. 윈도우 키보드에서는 윈도우 키.

    [ 참고자료 ]

    https://v3.ko.vuejs.org/guide/events.html#%E1%84%8B%E1%85%B5%E1%84%87%E1%85%A6%E1%86%AB%E1%84%90%E1%85%B3-%E1%84%8E%E1%85%A5%E1%86%BC%E1%84%8E%E1%85%B1

     

    이벤트 핸들링 | Vue.js

    이벤트 핸들링 이벤트 청취 v-on디렉티브는 @기호로, DOM 이벤트를 듣고 트리거 될 때와 JavaScript를 실행할 때 사용합니다. v-on:click="methodName" 나 줄여서 @click="methodName"으로 사용합니다. 예시: Add 1 Th

    v3.ko.vuejs.org

     

    'Vue > 문법' 카테고리의 다른 글

    Vue 폼 입력 바인딩  (0) 2021.06.20
    Vue 리스트 렌더링  (0) 2021.06.20
    Vue 조건부 렌더링  (0) 2021.06.20
    Vue 클래스 & 스타일 바인딩  (0) 2021.06.20
    Vue Computed, Watch  (0) 2021.06.19

    댓글

Designed by Tistory.