Vue.js事件处理
Vue.js事件处理
1、v-on指令
用法如下:使用v-on:指令指定其执行的具体内容或者方法名即可。
<button v-on:click='num++'>giao</button>
简写形式
<button @click='num++'>giao</button>
随着业务逻辑的增加,这种方式并不适用于我们实际的开发,所以我们实际的开发中,一般把vue中的事件单独定义为一个方法。方法定义在vue中的methods中,如果要在该方法中使用vue的data中的属性时,使用this关键字来调用。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="../vue-2.4.0.js"></script>
</head>
<body>
<div id="app">
<p>{{num}}</p>
<button @click='say()'>giao</button>
</div>
<script>
var vm = new Vue({
el:'#app',
data:{
num : 0
},
methods:{
say(){
this.$data.num++;
}
}
});
</script>
</body>
</html>
如果方法中需要传递参数,或者得到调用方的对象。可以进行如下操作。
其中普通参数直接传入实际参数,在方法中定义形参即可,获取当前被触发的对象使用$event即可。
注意点:
如果事件直接绑定半数名称,那么默认会传递事件对象作为事件函数的第一个参数(就是直接加参数名不加小括号的形式。例如@click='btnClick' )
如果事件绑定函数调用,那么事件对象必须作为最后一个参数显示传递,并且事件对象的名称必须是\(event(例如@click='btnClick(123,345,\)event)')
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="../vue-2.4.0.js"></script>
</head>
<body>
<div id="app">
<p>{{num}}</p>
<button @click='say(500,600,$event)'>giao</button>
</div>
<script>
var vm = new Vue({
el:'#app',
data:{
num : 0
},
methods:{
say(p1,p2,event){
this.$data.num++;
console.log(p1);
console.log(p2);
console.log(event.target.tagName);
console.log(event.target.innerHTML);
}
}
});
</script>
</body>
</html>
2、事件修饰符
2.1、.stop阻止冒泡
什么是冒泡行为?
如果标签以及其父标签都存在click方法,那么点击子标签会自动再执行其父标签的单击事件。这种现象 就叫做冒泡。
如何阻止冒泡?
在vue中,我们可以通过.stop修饰符来实现冒泡的阻止。具体的操作:在子标签中加入@click.stop="eventName()"即可。
2.2、.prevent组织默认行为
什么又是默认行为呢?
在html页面中,我么的很多标签具有它自己本身的功能,例如a标签有点击跳转的功能,那么我们给它指定单击事件的时候就存在一些异议。此时可以使用时间修饰符来阻止它的默认行为。
如何阻止默认行为?
使用.prevent修饰符可以阻止默认行为,具体操作如下:
<a @click.prevent='handle'>跳转</a>
2.3、其他修饰符
在vue中还存在其他的事件修饰符,但是它们不是很常用,我们需要时再去查看即可。
另外事件修饰符还支持串联,例如@click.stop.prevent='handle()',串联还存在先后顺序。
.capture
.self
.once
.passive
3、按键修饰符(键盘事件修饰符)
vue中不仅有鼠标事件的修饰符,还有键盘事件的修饰符。常用的如下
3.1、.enter修饰符
用法如下:<input type="button" @keyup.enter='handleSubmit()' v-model='pwd'>
3.2、.delete修饰符
这个修饰键,一般用于清空当前输入框,用法如下:<input type='input' @keyup.delete='handle()'>
其他按键修饰符
vue还提供了这些按键修饰符,这里不做过多的演示,需要的话可以去官网了解。
.tab
.esc
.up
.down
.space
.left
.right
自定义按键修饰符。
除了vue提供的这些按键修饰符以外,我们还可以使用config.keyCodes对象来自定义按键修饰符。
首先通过@keyup='handle'给标签添加一个键盘弹起事件,然后在该方法的方法体内获取按键的keyCode
handle:function(){concole.log(event.keyCode);}可以得到需要的按键的键码,
然后使用@keyup.键码='handle'即可。但是这样可读性比较低。所以一般我们使用vue中的自定义按键修饰 符,方法如下:在script标签中写上Vue.config.keyCode.aaa= 65 ;此时通过.aaa就可以实现,按下键码为65 的按钮的效果。
Vue.js事件处理的更多相关文章
- Vue.js学习 Item8 -- 方法与事件处理器
方法处理器 可以用 v-on 指令监听 DOM 事件: <div id="example"> <button v-on:click="greet&quo ...
- vue基础——事件处理
监听事件 可以用 v-on 指令监听dom事件,并在触发时运行一些JavaScript代码. 示例: <div id="example-1"> HTML <but ...
- Vue.js 相关知识(基础)
1. Vue.js 介绍 Vue,读音 /vjuː/,类似于 view),是一套用于构建用户界面的渐进式框架(重点在于视图层). 作者:尤雨溪 注:学习 vue.js 时,一定要抛弃 jQuery 的 ...
- 一起学Vue之事件处理
在Vue进行前端开发中,事件监听是必不可少的功能,本文通过简单的小例子,简述v-on的简单用法,仅供学习分享使用,如有不足之处,还请指正. 监听事件 可以用 v-on 指令监听 DOM 事件,并在触发 ...
- vue.js 第九课
这次讲红色框框. 方法与事件处理器: 方法处理器: 内联语句处理器: 事件修饰符: 按键修饰符: 为什么在HTML中监听事件? 1.v-on绑定事件 带参数 2.事件对象$event: 有时也需要调用 ...
- Vue.js——学习笔记
Vue-自学笔记 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅 ...
- Vue.js教程--基础2(事件处理 表单输入绑定
事件处理 表单输入绑定 事件处理 监听v-on 监听 DOM 事件,并在触发时运行一些 JavaScript 代码. 可以在v-on:click=''加内联语句. 有时也需要在内联语句处理器中访问原始 ...
- MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录
注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...
- Vue.js:轻量高效的前端组件化方案
转发一篇尤老师对vue.js的介绍,了解vue.js的来龙去脉.不过现在已经是2.0了,也有添加一些新的东西,当然有些东西也改了. Vue.js:轻量高效的前端组件化方案 Vue.js 是我在2014 ...
随机推荐
- Update(Stage4):spark_rdd算子:第2节 RDD_action算子_分区_缓存:算子和分区
一.reduce和reduceByKey: 二.:RDD 的算子总结 RDD 的算子大部分都会生成一些专用的 RDD map, flatMap, filter 等算子会生成 MapPartitions ...
- iOS 开发之 23种设计模式
整理了 iOS 开发中用到的设计模式: iOS 开发之 设计模式[一]原型模式 (Prototype pattern) iOS 开发之 设计模式[二]工厂方法模式 iOS 开发之 设计模式[三]抽象工 ...
- xml 写sql语句文件头
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-/ ...
- 一种ui app写法
方法一: $(function(){ // 定义一个对象 var qx={}; qx.ui={}; qx.ui.getleft=function(){ alert('qx.ui.getleft'); ...
- 【协作式原创】查漏补缺之Golang中mutex源码实现(预备知识)
预备知识 CAS机制 1. 是什么 参考附录3 CAS 是项乐观锁技术,当多个线程尝试使用 CAS 同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是 ...
- 面试问题之——给你图片的url,你能知道它所占的字节空间吗?
从一个需求说起 这标题起得有点标题党,实际情况是我最近在做一个公司内部工具时,遇到了这么一个需求,给定一个静态资源站点上某张图片的url(比如https://a.xxxcdn.com/demo.jpg ...
- 在iOS项目中,这样才能完美的修改项目名称
https://www.cnblogs.com/liangyi-cn/p/8657474.html 前言: 在iOS开发中,有时候想改一下项目的名字,这会遇到很多麻烦. 直接改项目名的话,Xcode不 ...
- php的弱类型比较
1.==和=== ==为弱相等,也就是说12=="12" --> true,而且12=="12cdf" --> true,只取字符串中开头的整数部分 ...
- 5 JSON&与JavaScript转换&JavaScript:void(0)&JavaScript代码规范
JSON:JavaScript Object Notation JS对象简谱 一种轻量级的数据交换格式,用于存储和传输数据的格式,通常用于服务端向网页传递数据 是独立的语言,易于理解 JSON语法 ...
- 51nod 1449:砝码称重
1449 砝码称重 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 取消关注 现在有好多种砝码,他们的重量是 w0,w1 ...