浅谈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 相关文章推荐
chrome浏览器不支持onmouseleave事件的解决技巧
May 31 Javascript
JQuery实现table行折叠效果以JSON做数据源
May 26 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
Apr 12 Javascript
JS折半插入排序算法实例
Dec 02 Javascript
JS实现单击输入框弹出选择框效果完整实例
Dec 14 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
May 17 Javascript
javascript self对象使用详解
Oct 18 Javascript
原生js开发的日历插件
Feb 04 Javascript
react.js使用webpack搭配环境的入门教程
Aug 14 Javascript
vue select二级联动第二级默认选中第一个option值的实例
Jan 10 Javascript
Node.js文件编码格式的转换的方法
Apr 27 Javascript
利用layer实现表单完美验证的方法
Sep 26 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使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
python中去空格函数的用法
2014/08/21 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
学生信息管理系统python版
2018/10/17 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
python如何实现异步调用函数执行
2019/07/08 Python
python3字符串操作总结
2019/07/24 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
Django中template for如何使用方法
2021/01/31 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
计算机专业毕业生求职信
2014/04/30 职场文书
社区两委对照检查材料
2014/08/23 职场文书
长城导游词300字
2015/01/30 职场文书
长江七号观后感
2015/06/11 职场文书
军训新闻稿范文
2015/07/17 职场文书
Python正则表达式中flags参数的实例详解
2022/04/01 Python