浅谈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(复选框) 使用集锦
Apr 28 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
Jan 28 Javascript
js单独获取一个checkbox看其是否被选中
Sep 22 Javascript
Javascript模仿淘宝信用评价实例(附源码)
Nov 26 Javascript
微信小程序 开发指南详解
Sep 27 Javascript
jQuery Mobile和HTML5开发App推广注册页
Nov 07 Javascript
JS实现的系统调色板完整实例
Dec 21 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
Dec 20 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
Aug 31 Javascript
Node+OCR实现图像文字识别功能
Nov 26 Javascript
vue store之状态管理模式的详细介绍
Jun 13 Javascript
uniapp,微信小程序中使用 MQTT的问题
Jul 11 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安装问题
2006/10/09 PHP
PHP提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
prototype 学习笔记整理
2009/07/17 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
js密码强度检测
2016/01/07 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
Sanic框架路由用法实例分析
2018/07/16 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
python实现桌面气泡提示功能
2019/07/29 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
护士专业推荐信
2013/11/02 职场文书
学校安全教育制度
2014/01/31 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
大学班长竞选稿
2015/11/20 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书