赞
踩
1.概述: 使用vue框架,如果想在指定的标签上加上事件,并绑定vue中编写的函数,就需要使用 v-on指令,就不用像写js那样直接写事件名了 2.语法: v-on:事件名 = "要绑定的vue中的函数名" 简化: @事件名 = "要绑定的vue中的函数名" 3.细节问题: a.使用vue给标签设置事件,事件名和js中学的事件名一样,只需要将js中的事件名的on去掉 比如: js中单击事件 -> onclick vue中单击事件 -> click b.事件绑定的函数需要在vue中的methods里面写 c.事件调用函数时,函数后面的小括号写不写都行(除非需要传参) 4.methods中的函数写法: 函数名:function(){ } 或者 函数名(){ }
1). <button v-on:click="num++">增加1</button> 绑定点击事件 2).<button @click="num++">增加1</button> 简化写法 3).<button @click="addNum">增加1</button <!DOCTYPE html> <html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>vue事件绑定v-on</title> </head> <body> <div id="app"> {{num}} 1. 如果是复杂计算建议使用function函数进行定义.获取属性时 使用this关键字. 2. 如果是简单的计算.则可以通过@click="计算操作" 该操作可以直接获取vue.js中的属性. 无需添加this关键字. <button v-on:click="num++">+</button> <button @click="num++">增加</button> <button @click="addNum">增加1</button> {{num}} <button v-on:click="num--">-</button> </div> </body> <script src="js/vue.js"></script> <script> const app=new Vue({ el:"#app", data:{ num:0 }, methods:{ addNum(){ this.num++ } } }); </script> </html>
事件冒泡
1.什么是事件冒泡:
比如:点击内层div,会将内层div要触发的事件传递到外层div中;也就是说,点击内层div绑定的事件,外层div绑定的事件也触发了
2.正常逻辑:
点击内层div,只触发内层div绑定的事件;点击外层div,只触发外层div绑定的事件
<button @click.stop="num++">自增</button>
@click.prevent="函数名称"
或者是js自带的:event.preventDefault(),阻止默认的行为
需求:
在form表单的actioin中或者a标签的href中,不想让其直接跳转,需要对其进行去其他的业务操作,要用到prevent
如注册页面中的action,我们需要先对输入的信息进行处理(验证是否存在或是否为空)时,如果验证成功则再跳转,否则就不能用跳转.
1)change事件:数据进行修改后离焦时触发(如在输入框中使用,输入值后,鼠标离开输入框外事件触发,多结合正则验证使用)
@change=“函数”
2)blur事件:不需要进行修改,离焦事件触发
@blur=“函数”
<!--按键修饰符: 敲击指定的按键触发事件
v-on:keyup : 按键弹起来有效. 使用更加频繁
v-on:keydown: 按键按下去有效.
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right
-->
如以下是使用正则验证用户名 <label>用户名称:</label> <input type="text" placeholder="请输入用户名" name="username" v-model="user.username" @change="checkUser" /> -------------------- data:{ checkUser(){ let reg=/^[a-z0-9]{6,16}$/i; if(reg.test(this.user.username)){ this.msg.userMsg="√"; this.flag[0]=1; }else{ this.msg.userMsg="用户名应为6~16位数字和字母组成"; this.flag[0]=0; } }, }
知识点:
1.但凡用户可以输入的位置 记得使用双向数据绑定
2.如果要求用户输入的只有数值类型 则建议type="number"
3.默认条件下 input框中的数据 当作是字符串类型. 如果需要当作number则需要转化.
3.1 eval("字符串") 该函数是JS原始提供的 将字符串转化为number类型
3.2 parseInt(this.numA) 该函数 是JS后期提供的. 二选一即可
4.如果页面中某些元素 需要"扩展" 可以进行样式修饰/js的操作/干预 最小的标签 使用span
5.在进行算术计算时,只有加法操作 可能会进行字符串拼接. 其它操作都按照number类型处理
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。