Meme's IT

[Vue] v-on 본문

FrontEnd/Vue

[Vue] v-on

Memez 2023. 11. 2. 11:18

# v-on

DOM 요소에 이벤트 리스너를 연결 및 수신

= addEventListener를 부착한거

v-on도 @로 대신 써도 됨

 

v-on:event="handler"
@event="handler"

handler의 종류

  • Inline handlers: 이벤트가 트리거될 때 실행 될 JavaScript 코드
  • Method handlers: 컴포넌트에 정의된 메서드 이름

 

1.lnline handlers

간단한 이벤트를 처리할 때 사용됨

const count = ref(0)
<button v-on:click="count++">Add 1</button>

 

 

 

 

2. Method handlers

Inline으로 불가능할 때(함수가 너무 길 때)

const name = ref('Bok')
const myFun = function (event) {
  console.log(`hello, ${name.value}`)
}

함수를 정의해 주고

<button @click="myFun">Hello</button>

바로 함수 붙여주기

 

 

+ 해당 함수에서 매개변수도 설정 가능

const greeting = function (message) {
  console.log(message)
}
<button @click="greeting('hello')">Say hello</button>

 

inline에서 인자를 줄 수 있음

 

이때, 매개변수에 event가 들어간다면?

const warning = function (message, event) {
  console.log(message)
  console.log(event)
}
<button @click="warning('경고', $event)">Submit</button>

$event 형태로 들어간다

 

 

 

# Event Modifiers

다양한 modifier가 있음

예를들면 event.preventDefault()를 modifier에서 할 수 있음

<form @submit=.prevent="onSubmit">
  <input type="submit">
</form>
<a @click.stop.prevent="onLink">Link</a>

여러개 나열하면서 쓸 수 있다 → 작성한 순서대로 실행

 

 

 

 

# Key Modifiers

<input type="text" @keyup.enter="onSubmit">

엔터를 쳤을 때 함수 발동

자세한 내용은 mdn문서 참고

 

다른 v-on 내용은 공식문서 참고

 

 

 

'FrontEnd > Vue' 카테고리의 다른 글

[Vue] TodoList 만들어보기  (0) 2023.11.02
[Vue] Form Input Bindings  (0) 2023.11.02
[Vue] v-bind (Attribute, Class, Style)  (0) 2023.11.02
[Vue] Directive  (0) 2023.11.02
[Vue] Template Syntax  (0) 2023.11.02