Vue.js
v-on 수식어
Mecodata
2024. 2. 23. 17:12
이벤트 수식어
.stop
- 자식 요소의 이벤트가 부모 요소의 이벤트를 호출하지 않도록 설정
<!-- 클릭 이벤트 전파 중지 -->
<div @click.stop="doThis">Click</div>
.prevent
- 페이지 새로고침 방지
ex) 입력창에 무언가를 입력한 다음 전송 버튼을 눌러도 렌더링 X
<form v-on:submit.prevent="submitForm">
<input type="text">
<button>Sign up</button>
</form>
.self
- 자식 요소의 이벤트를 실행해도 부모 요소의 메소드 실행 X
- .self를 지정한 부모 요소를 직접 실행해야지만 이벤트가 실행됨
<template>
<div
class="parent"
@click.self="handlerA">
<div
class="child"></div>
</div>
</template>
.once
- 이벤트를 실행했을 때 해당하는 메소드를 단 한번만 실행되도록 설정
- v-on의 .once가 아닌 v-once로도 적용가능
.capture
- 우선순위를 무시하고 가장 먼저 실행
EX) div3 -> div2 -> div1 순서가 정상이지만 div1 -> div3 -> div2 순으로 실행
<div
class="div1"
@click.capture="func1"
style="background: red; padding: 10px;"
>
div1
<div class="div2" @click="func2" style="background: green; padding: 10px;">
div2
<div class="div3" @click="func3" style="background: blue; padding: 10px;">
div3
</div>
</div>
</div>
.passive
- 이벤트에 해당하는 메소드의 로직 처리와 화면의 동작을 완전히 독립시켜주도록 설정 (일반적으로는 로직 처리와 화면 동작이 동시에 실행)
- .prevent와 혼용 X
입력키 수식어
- 해당되는 키를 누르면 이벤트가 실행
- .enter
- .tab
- .delete (delete와 백스페이스 모두)
- .esc
- .space
- .up, .down, .left, .right
마우스 수식어
- .left (기본값)
- .middle
- .right