淺談Vue.js 中的 v-on 事件指令的使用
v-on 事件指令用于綁定事件。
1 基礎(chǔ)用法
v-on 指令綁定事件后,就會(huì)監(jiān)聽相應(yīng)的事件。
html:
<div id="app">
<h3>已點(diǎn)擊 {{count}} 次</h3>
<button @click="count++">點(diǎn)我</button>
</div>
注意: @click 是 v-on:click 的簡(jiǎn)寫形式, @ 即表示 v-on: 。
js:
<script>
var app = new Vue({
el: '#app',
data: {
count:0
}
});
</script>
效果:

@click 表達(dá)式即可以直接使用 js 語(yǔ)句,也可以是一個(gè)定義在 vue 實(shí)例中 methods 內(nèi)的函數(shù)名。
html:
<button @click="quickAdd(3)">快速增長(zhǎng)</button>
js:
methods: {
quickAdd: function (i) {
i = i || 1;//為避免參數(shù)為 null 或 undefined 值,這里設(shè)定了默認(rèn)值 1
this.count += i;
}
}
效果:

注意: @click 調(diào)用的方法名如果不需要參數(shù),那么可以不寫括號(hào)。
使用 Vue.js 的一個(gè)好處是:當(dāng)銷毀 ViewModel 時(shí),會(huì)自動(dòng)銷毀所有綁定在其上的事件處理器。
2 調(diào)用 DOM 事件
Vue.js 還提供了一個(gè) $event 變量,使用它可以訪問原生 DOM 事件。 $event 變量可以通過(guò)方法傳入。
html:
<div id="app2">
<a href="www.163.com" rel="external nofollow" @click="openUrl('被禁用咯',$event)">被禁用咯</a>
</div>
js:
var app2 = new Vue({
el: '#app2',
data: {
count: 0
},
methods: {
openUrl: function (param, event) {
event.preventDefault();
console.log("param:" + param);
}
}
});
輸出結(jié)果:
param:被禁用咯
這個(gè)示例利用傳入的 event 參數(shù),禁用了原有的鏈接跳轉(zhuǎn)邏輯。
3 事件修飾符
Vue.js 支持以下事件修飾符:
| 事件修飾符 | 示例 | 示例說(shuō)明 |
|---|---|---|
| .stop | @click.stop | 阻止單擊事件冒泡。 |
| .prevent | @submit.prevent | 提交頁(yè)面不再重載頁(yè)面。 |
| .capture | @click.capture | 添加事件監(jiān)聽器時(shí)使用事件捕獲模式。 |
| .self | @click.self | 只有當(dāng)單擊事件是元素的自身事件時(shí),才會(huì)觸發(fā)。 |
| .once | @click.once | 只觸發(fā)一次。 |
4 按鍵修飾符
可以使用按鍵修飾符,來(lái)監(jiān)聽表單元素上的鍵盤事件。
html:
<div id="app3"> <input @keyup.13="enterClick"> </div>
js:
var app3 = new Vue({
el: '#app3',
data: {},
methods: {
enterClick: function () {
console.log("enterClick");
}
}
});
輸出結(jié)果:enterClick
這個(gè)示例演示了如何通過(guò)回車按鍵修飾符來(lái)綁定事件函數(shù)的過(guò)程。
除了使用 keycode 來(lái)指定按鍵之外,我們還可以使用以下這些按鍵別名:
- .enter
- .tab
- .delete
- .esc
- .space
- .up
- .down
- .left
- .right
還有一些按鍵修飾符可以組合使用,或者和鼠標(biāo)一起使用:
- .ctrl
- .alt
- .shift
- .meta:Mac 下為 Command 鍵,Windows 下為窗口鍵。
html:
<div id="app4"> <input @keyup.alt.83="save"> </div>
js:
var app4 = new Vue({
el: '#app4',
data: {},
methods: {
save: function () {
console.log("save");
}
}
});
輸出結(jié)果:save
這個(gè)示例,我們通過(guò)組合按鍵修飾符,為輸入框綁定了 alt + S 事件。
本文示例( DEMO )
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解vue中v-on事件監(jiān)聽指令的基本用法
- 聊聊vue 中的v-on參數(shù)問題
- 關(guān)于Vue v-on指令的使用
- Vue.js中v-on指令的用法介紹
- Vue中v-on的基礎(chǔ)用法、參數(shù)傳遞和修飾符的示例詳解
- vue中v-model、v-bind和v-on三大指令的區(qū)別詳解
- Vue中的v-model,v-bind,v-on的區(qū)別解析
- Vue.js基礎(chǔ)之監(jiān)聽子組件事件v-on及綁定數(shù)據(jù)v-model學(xué)習(xí)
- vue3常用的指令之v-bind和v-on指令用法
- vue v-on傳遞參數(shù)和事件修飾符的使用
相關(guān)文章
vue頁(yè)面使用阿里oss上傳功能的實(shí)例(二)
本篇文章主要介紹了vue頁(yè)面使用阿里oss上傳功能的實(shí)例(二),主要介紹OSS管理控制臺(tái)設(shè)置訪問權(quán)限、角色等,有興趣的可以了解一下2017-08-08
vue 實(shí)現(xiàn)網(wǎng)頁(yè)截圖功能詳解
這篇文章主要介紹了通過(guò)vue實(shí)現(xiàn)網(wǎng)頁(yè)截圖的功能,有興趣的童鞋可以了解一下2021-11-11
Vue中接收二進(jìn)制文件流實(shí)現(xiàn)pdf預(yù)覽的方法
本文主要介紹了Vue中接收二進(jìn)制文件流實(shí)現(xiàn)pdf預(yù)覽的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
VUE如何利用vue-print-nb實(shí)現(xiàn)打印功能詳解
這篇文章主要給大家介紹了關(guān)于VUE如何利用vue-print-nb實(shí)現(xiàn)打印功能的相關(guān)資料,文中還給大家介紹了vue-print-nb使用中的常見問題,如空白頁(yè),需要的朋友可以參考下2022-04-04
Vue3全局掛載使用Axios學(xué)習(xí)實(shí)戰(zhàn)
這篇文章主要為大家介紹了Vue3全局掛載使用Axios學(xué)習(xí)實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

