Vue如何处理事件?
1.v-on指令用法
v-on用来绑定事件的,形式如:v-on:click绑定点击事件,可以缩写为
click;v-on指令用法通过v-on来给元素绑定事件,在HTML元素中使用data中定义的数据num不需要加this,上面两种v-on都能实现改变num
绑定事件让num++但是通常开发中我们不这样写,毕竟开发中逻辑更加复杂,直接吧JavaScript代码写在v-on指令里面可不行,所以v-on还能接收一个需要调用的方法名称
2.事件函数的调用方式
接收调用的方法名称接收的方法名称可以带()也可以不带,之后再在Vue实例里面定义这个函数
注意this这样当我们点击按钮时就会调用handle这个函数,逻辑就写在函数里面,让num++,methods中主要是定义一些函数,我们定义函数就在methods里面定义,handle:function()可以省略function,书写更加简单
简写写法3.事件函数参数传递
事件传参数的方式如果事件直接绑定函数名称(handle1),那么默认会传递事件对象(event)作为事件函数的第一个参数
如果事件绑定函数调用(handle2),那么事件对象(event)必须作为最后一个参数显示传递,并且事件对象的名称必须是$event
打印事件对象e(event)打印结果通过输出事件对象e(event)能够找到他的target属性,e.target也就是我们的button点击/button标签
拿到标签就能拿到标签的内容(e.target.innerHTML)点击,例如这样就能通过事件对象做很多逻辑
事件修饰符
在事件处理程序中调用event.preventDefault()阻止默认行为或event.stopPropagation()阻止事件冒泡是非常常见的需求。
Vue不推荐我们操作DOM为了解决这个问题,Vue.js为v-on指令提供了事件修饰符,修饰符是由点开头的指令后缀来表示的
(1)阻止单击事件继续传播:a
click.stop=doThis/a(2)提交事件不再重载页面:formv-on:submit.prevent=onSubmit/form
(3)修饰符可以串联即阻止冒泡也阻止默认事件:
av-on:click.stop.prevent=doThat/a
(4)只当在event.target是当前元素自身时触发处理函数即事件不是从内部元素触发的divv-on:click.self=doThat……/div
注意:使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用v-on:click.prevent.self会阻止所有的点击,而v-on:click.self.prevent只会阻止对元素自身的点击。
按键修饰符
在做项目中有时会用到键盘事件,在监听键盘事件时,我们经常需要检查详细的按键。Vue允许为v-on在监听键盘事件时添加按键修饰符
按键修饰符自定义按键修饰符
自定义按键修饰符名字是自定义的,但是对应的值必须是按键对应event.keyCode值
语法:Vue.config.keyCodes.修饰符名称=对应键盘的ASCII码值(百度ASCII码值表)比如键盘上我们按字母a的时候它对应的ASCII码值是65,我们就可以自定义按键a的修饰符Vue.config.keyCodes.a=65,开发中就能限制用户按哪些键会展示对应的交互效果
Vue为什么不推荐我们操作DOM
在JavaScript中我们说过要想改变元素的样式效果,我们必须首先获取DOM元素,然后给事件元素绑定事件最后通过逻辑让它展现什么效果,但是在Vue为什么不推荐我们操作DOM
MVVM设计思想
MVVM是前端视图层的概念,主要