浅谈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 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
Apr 10 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
Jan 25 Javascript
用按钮控制iframe显示的网页实现方法
Feb 04 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
Mar 18 Javascript
javascript动态设置样式style实例分析
May 13 Javascript
Boostrap入门准备之border box
May 09 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
Aug 11 Javascript
Javascript发送AJAX请求实例代码
Aug 21 Javascript
angular中的http拦截器Interceptors的实现
Feb 21 Javascript
vue webuploader 文件上传组件开发
Sep 23 Javascript
vue添加class样式实例讲解
Feb 12 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
用PHP连mysql和oracle数据库性能比较
2006/10/09 PHP
如何做到多笔资料的同步
2006/10/09 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
小饰品店的创业计划书范文
2013/12/28 职场文书
工作失误检讨书范文大全
2014/01/13 职场文书
民族精神月活动总结
2014/08/28 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android