웹 프론트엔드 JS 튜토리얼 Vue.JS 입문 튜토리얼 이벤트 모니터링

Vue.JS 입문 튜토리얼 이벤트 모니터링

Dec 03, 2016 am 10:20 AM
vue.js

v-on 지시문을 사용하여 DOM 이벤트를 바인딩하고 수신할 수 있습니다. 바인딩의 내용은 현재 인스턴스의 메서드(뒤에 괄호가 올 필요 없음) 또는 인라인 표현식일 수 있습니다. 메소드가 제공되면 기본 DOM 이벤트가 첫 번째 매개변수로 전달되고 이 이벤트는 이벤트를 트리거한 해당 ViewModel을 가리키는 targetVM 속성을 갖게 됩니다.

<div id="demo">
 <a v-on="click: onClick">触发一个方法函数</a>
 <a v-on="click: n++">触发一个表达式</a>
</div>
로그인 후 복사
new Vue({
el: &#39;#demo&#39;,
data: {
 n: 0
},
methods: {
 onClick: function (e) {
 console.log(e.targetVM.n);
 console.log(e.target.tagName);// "A"
 console.log(e.targetVM === this);// true
 }
}
});
로그인 후 복사

표현식 실행

v-repeat에서 v-on을 사용할 때 targetVM은 유용합니다. v-repeat는 많은 수의 하위 ViewModel을 생성하기 때문입니다. 그러나 다음 표현식을 실행하여 현재 ViewModel 데이터 객체를 나타내는 별칭을 전달하는 것이 더 편리하고 직관적입니다.

<ul id="list">
 <li v-repeat="item in items" v-on="click: toggle(item)">
 {{item.text}}
 </li>
 <button v-on="click: submit(&#39;hello!&#39;, $event)">Submit</button>
</ul>
로그인 후 복사
new Vue({
el: &#39;#list&#39;,
data: {
 items: [
 { text: &#39;one&#39;, done: true },
 { text: &#39;two&#39;, done: false }
 ]
},
methods: {
 toggle: function (item) {
 console.info(item.done);
 item.done = !item.done;
 console.info(item.done);
 },
 submit: function (msg, e) {
 e.stopPropagation();
 console.info(msg + &#39; submit is called!&#39;);
 }
}
})
로그인 후 복사

표현식 이벤트에서 원본 DOM에 액세스하려는 경우 $event 매개변수를 전달할 수 있습니다.

키 필터
키보드 이벤트를 수신할 때 일반적으로 사용되는 키 코드를 결정해야 하는 경우가 많습니다. Vue.js는 v-on 지시문: 키에만 사용할 수 있는 특수 필터를 제공합니다. 키 코드를 나타내는 매개변수를 수신하고 판단을 완료합니다.

<!-- 只有当 keyCode 等于 13 时才调用方法 -->
<input v-on="keyup:mySubmit | key 13">
로그인 후 복사

시스템에는 사용할 수 있는 많은 기본값이 있습니다. 예:

<!-- 效果同上 -->
<input v-on="keyup:submit | key &#39;enter&#39;">
로그인 후 복사

기본값 is: Enter tab delete esc up down left right space

HTML에서 리스너를 사용하는 이유
이벤트 청취의 전체 방식이 "관심사 분리"라는 전통적인 개념에 어긋난다는 것을 알 수 있습니다. 걱정하지 마십시오. 모든 Vue.js 이벤트 핸들러와 표현식은 현재 뷰의 ViewModel에 엄격하게 바인딩되어 있으므로 유지 관리에 어려움이 발생하지 않습니다. 실제로 v-on을 사용하면 더 많은 이점이 있습니다.

HTML 템플릿의 JS 코드에서 해당 메서드 구현을 쉽게 찾을 수 있습니다.
JS에서는 이벤트를 수동으로 바인딩할 필요가 없기 때문에 ViewModel 코드는 DOM에서 완전히 분리된 매우 순수한 로직이 될 수 있습니다. 테스트하기가 더 쉬울 것입니다.
ViewModel이 삭제되면 모든 이벤트 리스너가 자동으로 제거됩니다. 직접 청소하는 것에 대해 걱정할 필요가 없습니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

vue에서 구성 요소화와 모듈화의 차이점은 무엇입니까 vue에서 구성 요소화와 모듈화의 차이점은 무엇입니까 Dec 15, 2022 pm 12:54 PM

구성요소화와 모듈화의 차이점: 모듈화는 코드 논리의 관점에서 구분되며, 코드 계층 개발을 용이하게 하고 각 기능 모듈의 기능이 일관되게 유지되도록 합니다. 컴포넌트화는 UI 인터페이스 관점에서 계획하는 것으로 프런트엔드의 컴포넌트화는 UI 컴포넌트의 재사용을 용이하게 합니다.

vite가 .env 파일을 구문 분석하는 방법에 대한 심층 토론 vite가 .env 파일을 구문 분석하는 방법에 대한 심층 토론 Jan 24, 2023 am 05:30 AM

Vue 프레임워크를 사용하여 프런트엔드 프로젝트를 개발할 때 배포 시 여러 환경을 배포하게 되는데, 개발 환경, 테스트 환경, 온라인 환경에서 호출되는 인터페이스 도메인 이름이 다른 경우가 많습니다. 어떻게 구별할 수 있나요? 그것은 환경 변수와 패턴을 사용하는 것입니다.

실용적인 전투: vue 파일을 지원하여 정의로 이동하는 플러그인을 vscode에서 개발합니다. 실용적인 전투: vue 파일을 지원하여 정의로 이동하는 플러그인을 vscode에서 개발합니다. Nov 16, 2022 pm 08:43 PM

vscode 자체는 Vue 파일 구성 요소를 지원하여 정의로 이동하지만 지원은 매우 약합니다. vue-cli 구성에 따라 다양한 유연한 사용법을 작성할 수 있어 생산 효율성을 향상시킬 수 있습니다. 그러나 vscode 자체에서 제공하는 기능이 파일 정의로 점프하는 것을 지원하지 못하게 하는 것은 이러한 유연한 쓰기 방법입니다. 이러한 유연한 작성 방법과 호환되고 작업 효율성을 높이기 위해 Vue 파일을 지원하는 vscode 플러그인을 작성하여 정의로 이동했습니다.

Vue 프로젝트에 Ace 코드 편집기를 통합하는 방법에 대한 자세한 그래픽 설명 Vue 프로젝트에 Ace 코드 편집기를 통합하는 방법에 대한 자세한 그래픽 설명 Apr 24, 2023 am 10:52 AM

Ace는 JavaScript로 작성된 내장형 코드 편집기입니다. Sublime, Vim 및 TextMate와 같은 기본 편집기의 기능 및 성능과 일치합니다. 모든 웹페이지와 JavaScript 애플리케이션에 쉽게 삽입할 수 있습니다. Ace는 Cloud9 IDE의 메인 편집자로 유지되며 Mozilla Skywriter(Bespin) 프로젝트의 후속 버전입니다.

vue3의 반응성()에 대해 자세히 이야기해 봅시다. vue3의 반응성()에 대해 자세히 이야기해 봅시다. Jan 06, 2023 pm 09:21 PM

서문: vue3 개발에서 반응형은 반응형 데이터를 구현하는 방법을 제공합니다. 일상적인 개발에서 자주 사용되는 API입니다. 이 기사에서 저자는 내부 작동 메커니즘을 탐구합니다.

Vue3에서 단위 테스트를 작성하는 방법 살펴보기 Vue3에서 단위 테스트를 작성하는 방법 살펴보기 Apr 25, 2023 pm 07:41 PM

Vue.js는 오늘날 프런트엔드 개발에서 매우 인기 있는 프레임워크가 되었습니다. Vue.js가 계속 발전함에 따라 단위 테스트는 점점 더 중요해지고 있습니다. 오늘은 Vue.js 3에서 단위 테스트를 작성하는 방법을 살펴보고 몇 가지 모범 사례와 일반적인 문제 및 솔루션을 제공하겠습니다.

Vue3 동적 구성 요소에서 예외를 처리하는 방법에 대한 간략한 분석 Vue3 동적 구성 요소에서 예외를 처리하는 방법에 대한 간략한 분석 Dec 02, 2022 pm 09:11 PM

Vue3 동적 구성 요소에서 예외를 처리하는 방법은 무엇입니까? 다음 기사에서는 Vue3 동적 구성 요소 예외 처리 방법에 대해 설명합니다. 이것이 모든 사람에게 도움이 되기를 바랍니다.

vue가 파일 분할 업로드를 구현하는 방법에 대한 간략한 분석 vue가 파일 분할 업로드를 구현하는 방법에 대한 간략한 분석 Mar 24, 2023 pm 07:40 PM

실제 개발 프로젝트 프로세스에서는 상대적으로 큰 파일을 업로드해야 하는 경우가 있는데, 그러면 업로드가 상대적으로 느려지므로 백그라운드에서 파일 조각을 업로드하려면 매우 간단합니다. 기가바이트 파일 스트림이 여러 개의 작은 파일 스트림으로 절단된 다음 인터페이스는 작은 파일 스트림을 각각 전달하도록 요청됩니다.

See all articles