浅谈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 相关文章推荐
javascript 精粹笔记
May 09 Javascript
js实现快速分享功能(你的文章分享工具)
Jun 25 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
Dec 15 Javascript
JavaScript中几种排序算法的简单实现
Jul 29 Javascript
JS实现的3D拖拽翻页效果代码
Oct 31 Javascript
JavaScript模拟push
Mar 06 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
Jan 22 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
Feb 07 Javascript
vue.js从安装到搭建过程详解
Mar 17 Javascript
vue.js学习之vue-cli定制脚手架详解
Jul 02 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
Jan 16 Javascript
浅谈关于vue中scss公用的解决方案
Dec 02 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/09/05 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
document对象execCommand的command参数介绍
2006/08/01 Javascript
js DataSet数据源处理代码
2010/03/29 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
乐观大学生的自我评价
2014/01/10 职场文书
工作决心书范文
2014/03/11 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
专科生就业求职信
2014/06/22 职场文书
班子四风对照检查材料
2014/08/21 职场文书
2014年个人委托书范本
2014/10/13 职场文书
事业单位考察材料范文
2014/12/25 职场文书