背景

如果我们要阻止默认事件,在 chrome 等浏览器中,我们可能要写一个:

event.preventDefault();

而在 IE 中,我们则需要写:

event.returnValue = false;

jquery ,跨浏览器的实现,我们统一只需要写:

event.preventDefault();

vue 中的 event 对象

相比于 jquery,vue 的事件绑定可以显得更加直观和便捷,我们只需要在模板上添加一个 v-on 指令(还可以简写为 @),即可完成类似于 $('xxx').bind 的效果,少了一个利用选择器查询元素的操作。我们知道,jquery 中,event 对象会被默认当做实参传入到处理函数中,如下:

$('body').bind('click', function (event){

console.log(typeof event); // object

});

这里直接就获取到了 event 对象,那么问题来了,vue 中呢?

click me

...

var app = new Vue({

el: '#app',

methods: {

click(event) {

console.log(typeof event); // object

}

}

});

原来,vue.js通过将一个特殊变量 $event 传入到回调中解决这个问题!!!

简单总结其用法:

使用不带圆括号的形式,event 对象将被自动当做实参传入;

使用带圆括号的形式,我们需要使用 $event 变量显式传入 event 对象。

乌龙

类似下面的代码:

click me

...

var app = new Vue({

el: '#app',

methods: {

click(val) {

console.log(typeof event); // object

}

}

});

丢进 chrome 里面一跑,经测试是可以的,打印 arguments.length,也是正常的 1

既没有传入实参,也没有接收的形参,这个 event 对象的来源window.event

window.event,ie 和 chrome 都在 window 对象上有这样一个属性:

window.event

代码丢进 Firefox 中运行,event 果然就变成了 undefined 了。

HTML使用vue的 event,vue-js 特殊变量$event常识相关推荐

  1. Vue中键盘快捷键-JS键盘事件

    在VUE中键盘快捷键-JS键盘事件 键盘事件 在vue项目中监听键盘事件--keydown 键盘常用键的keyCode值 键盘事件 在 JavaScript 中,当用户操作键盘时,会触发键盘事件,键盘 ...

  2. html 全景图three,vue中利用three.js实现全景图的完整示例

    粗暴一点,直接上代码: 第一步: 通过指令下载three.js npm install three -S 第二步: 在组件中引用 import * as THREE from 'three' 第三步: ...

  3. 【笔记-vue】《imooc-vue.js高仿饿了么》、《imooc-vue 音乐app》、《imooc-vue.js源码全方位解析》

    20170709 - 20171128:<imooc-vue.js高仿饿了么> 一.第一章 课程简介 1-1课程简介 1.需求分析-脚手架工具-数据mock-架构设计-代码编写-自测-编译 ...

  4. vue动态加载js和css以及部分页面加载特定的js和css

    vue动态加载js和css以及部分页面加载特定的js和css vue项目第一次加载很慢的,发现在第一次加载要很大的js导致卡顿.可以使用cdn加速和其他gzip方式效果不是很明显.因此考虑每个页面动态 ...

  5. html vue 3D之Three.js(第二节)

    第一节:html vue 3D之Three.js(第一节)_加金开发的博客-CSDN博客 实列模型下载:https://download.csdn.net/download/qq_33131171/8 ...

  6. vue如何使用原生js写动画效果_手摸手,带你用 vue 动画实现原生 app 切换效果,丝滑般的体验...

    先来看效果图 完整源码在 github 中 欢迎 star: 准备 开始之前您需要有 vue 基础,以及安装好 vue-cli 开始 新建 vue 项目:vue init webpack vuexle ...

  7. vue导入非es6 js文件_Vue项目兼容IE11

    Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性.但对于 IE9+,Vue 底层是支持. 由于开发过程中,我们经常会使用一些第三方插件或组件 ...

  8. vue 动态路由_Vue.js应用性能优化三

    在上一篇Vue.js应用性能优化二中,我们学习了足够强大的模式,可以显着提高应用程序的性能 - 按照路由分割代码.虽然按照路由拆分代码非常有用,但在用户访问我们的站点后,仍然有很多内部代码不需要.在本 ...

  9. vue js 定义对象_JS标准内置对象Proxy及Vue中的proxy.js文件

    昔登铜井望法华,葱茏螺黛浮蒹葭.今登法华望铜井,湖水迷茫烟色瞑.-- <登法华寺山顶> Proxy是什么 Proxy是JS标准内置对象中的一个对象.用于创建一个对象的代理.从而实现对对象操 ...

  10. vue中config/index.js:配置的详细理解

    当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) 1 2 3 4 5 6 7 8 9 10 11 12 ...

最新文章

  1. Py之Pyinstaller:Python库之Pyinstaller简介、使用方法、安装详细攻略
  2. EntityFramework 学习: Console中初见
  3. 为什么mysql第一步安装_Mysql安装步骤
  4. vcf文件(call variants得来的)怎么看变异是纯合还是杂合的
  5. html清除溢出,深入理解CSS overflow:hidden——溢出,坍塌,清除浮动
  6. excel中画图坐标轴更改数字大小_Excel柱状图看不清?用这3种方法就可以
  7. 正则表达式学习笔记011--贪婪和懒惰的匹配
  8. 英特尔玩VR有多认真?看看Project Alloy的细节就知道了
  9. 关注LoadRunner脚本回放日志中的Warning信息
  10. MTK:GPIO模式与设置
  11. 变邻域搜索算法(Variable Neighborhood Search,VNS)
  12. Java API For WebSocket(七)Java EE环境
  13. CSR烧录工具csr单个蓝牙烧录小工具qcc300x烧录软件/CSR86xx烧写工具
  14. pythonobject转int_python – Pandas:将date’object’转换为int
  15. 随机过程基础(1)---一维随机变量标准分布函数、常见性质MATLAB实现
  16. manjaro快捷键
  17. 云原生 - 自建数据库与云数据库RDS性能优势分析,值不值得购买?
  18. 2020/5/4/ 每日一咕
  19. 抖音研发效率负责人:抖音能做到每周迭代,离不开飞书项目
  20. MapReduce的执行流程

热门文章

  1. 洛谷p2704 炮兵阵地
  2. 写更漂亮的javascript
  3. 我们怎样确保从大数据计算中获得价值
  4. 安防硬件WIZnet基于全硬件TCP/IP的安防产品应用及方案
  5. java调用oracle 存储过程 以及游标使用
  6. eclipse下使用git插件上传代码至github
  7. JS ES6中export和import详解
  8. Redis 的应用场景
  9. 记录自己的nest学习之旅
  10. SQLAlchemy 一些基本操作