浅谈Vue.js 中的 v-on 事件指令的使用


Posted in Javascript onNovember 25, 2018

v-on 事件指令用于绑定事件。

1 基础用法

v-on 指令绑定事件后,就会监听相应的事件。

html:

<div id="app">
 <h3>已点击 {{count}} 次</h3>
 <button @click="count++">点我</button>
</div>

注意: @clickv-on:click 的简写形式, @ 即表示 v-on:

js:

<script>
 var app = new Vue({
  el: '#app',
  data: {
   count:0
  }
 });
</script>

效果:

浅谈Vue.js 中的 v-on 事件指令的使用

@click 表达式即可以直接使用 js 语句,也可以是一个定义在 vue 实例中 methods 内的函数名。

html:

<button @click="quickAdd(3)">快速增长</button>

js:

methods: {
 quickAdd: function (i) {
  i = i || 1;//为避免参数为 null 或 undefined 值,这里设定了默认值 1
  this.count += i;
 }
}

效果:

浅谈Vue.js 中的 v-on 事件指令的使用

注意: @click 调用的方法名如果不需要参数,那么可以不写括号。

使用 Vue.js 的一个好处是:当销毁 ViewModel 时,会自动销毁所有绑定在其上的事件处理器。

2 调用 DOM 事件

Vue.js 还提供了一个 $event 变量,使用它可以访问原生 DOM 事件。 $event 变量可以通过方法传入。

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);
  }
 }
});

输出结果:

param:被禁用咯

这个示例利用传入的 event 参数,禁用了原有的链接跳转逻辑。

3 事件修饰符

Vue.js 支持以下事件修饰符:

事件修饰符 示例 示例说明
.stop @click.stop 阻止单击事件冒泡。
.prevent @submit.prevent 提交页面不再重载页面。
.capture @click.capture 添加事件监听器时使用事件捕获模式。
.self @click.self 只有当单击事件是元素的自身事件时,才会触发。
.once @click.once 只触发一次。

4 按键修饰符

可以使用按键修饰符,来监听表单元素上的键盘事件。

html:

<div id="app3">
 <input @keyup.13="enterClick">
</div>

js:

var app3 = new Vue({
 el: '#app3',
 data: {},
 methods: {
  enterClick: function () {
   console.log("enterClick");
  }
 }
});

输出结果:enterClick

这个示例演示了如何通过回车按键修饰符来绑定事件函数的过程。

除了使用 keycode 来指定按键之外,我们还可以使用以下这些按键别名:

  • .enter
  • .tab
  • .delete
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right

还有一些按键修饰符可以组合使用,或者和鼠标一起使用:

  • .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");
  }
 }
});

输出结果:save

这个示例,我们通过组合按键修饰符,为输入框绑定了 alt + S 事件。

本文示例( DEMO )

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 判断checkbox是否选中的操作方法
Nov 09 Javascript
JS实现随机数生成算法示例代码
Aug 08 Javascript
javascript中的if语句使用介绍
Nov 20 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
Jquery异步提交表单代码分享
Mar 26 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
May 12 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
Apr 13 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
Jul 31 Javascript
详解关于Vuex的action传入多个参数的问题
Feb 22 Javascript
vue 解除鼠标的监听事件的方法
Nov 13 Javascript
详细分析JavaScript中的深浅拷贝
Sep 17 Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 #Javascript
vue组件实践之可搜索下拉框功能
Nov 25 #Javascript
详解离线安装npm包的几种方法
Nov 25 #Javascript
vue将单页面改造成多页面应用的方法
Nov 25 #Javascript
vue下拉菜单组件(含搜索)的实现代码
Nov 25 #Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
Nov 25 #Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 #Javascript
You might like
重置版游戏视频
2020/04/09 魔兽争霸
php 结果集的分页实现代码
2009/03/10 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
php实现的短网址算法分享
2014/06/20 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
基于jquery的跨域调用文件
2010/11/19 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
详解使用vuex进行菜单管理
2017/12/21 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
详解python多线程之间的同步(一)
2019/04/03 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
Pandas之缺失数据的实现
2021/01/06 Python
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
美国性感内衣店:Yandy
2018/06/12 全球购物
人力资源管理毕业生自荐信
2014/06/26 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
二婚主持词
2015/06/30 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电