当前位置: 首页 符咒

Vue修饰符,修饰符有哪些有什么应用场景:报仇符

栏目:符咒 作者:道教符咒法事法术网 时间:2022-07-18 09:31:16
一、修饰符是什么 在程序世界里报仇符,修饰符是用于限定类型以及类型成员的声明的一种符号 在Vue中报仇符,修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理 vue中修饰符分为以下五种: 表单修饰符 事件修饰符 鼠标按键修饰符 键值修饰符 v-bind修饰符 二、修饰符的作用 表单修饰符 在我们填写表单的时候用得最多的是input标签报仇符,指令用得最多的是v-model 关于表单的修饰符有如下: lazy trim numbe

一、修饰符是什么

在程序世界里报仇符,修饰符是用于限定类型以及类型成员的声明的一种符号

在Vue中报仇符,修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理

vue中修饰符分为以下五种:

表单修饰符

事件修饰符

鼠标按键修饰符

键值修饰符

vbind修饰符

二、修饰符的作用

表单修饰符

在我们填写表单的时候用得最多的是input标签报仇符,指令用得最多的是vmodel

关于表单的修饰符有如下:

lazy

trim

number

lazy

在我们填完信息报仇符,光标离开标签的时候,才会将值赋予给value,也就是在change事件之后再进行信息同步

input type="text" vmodel.lazy="value"

p{{value}}/p

trim

自动过滤用户输入的首空格字符报仇符,而中间的空格不会过滤

input type="text" vmodel.trim="value"

number

自动将用户的输入值转为数值类型报仇符,可如果这个值无法被parseFloat解析,则会返回原来的值

input vmodel.number="age" type="number"

事件修饰符

如果需要在内联语句处理器中访问原生DOM事件报仇符。可以使用特殊变量$event,把它传入到methods中的方法中。在vue中,事件修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理。在vue中事件修饰符主要有:

stop

prevent

self

once

capture

passive

native

stop

阻止了事件冒泡报仇符,相当于调用了event.stopPropagation方法

展开全文

div @click="shout(2)"

button @click.stop="shout(1)"ok/button

/div

//只输出1

prevent

阻止了事件的默认行为报仇符,相当于调用了event.preventDefault方法

form von:submit.prevent="onSubmit"/form

self

只当在 event.target 是当前元素自身时触发处理函数

div von:click.self="doThat".../div

使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生报仇符。因此,用 von:click.prevent.self 会阻止

所有的点击报仇符,而 von:click.self.prevent 只会阻止对元素自身的点击

once

绑定了事件以后只能触发一次报仇符,第二次就不会触发

button @click.once="shout(1)"ok/button

capture

使事件触发从包含这个元素的顶层开始往下触发

div @click.capture="shout(1)"

obj1

div @click.capture="shout(2)"

obj2

div @click="shout(3)"

obj3

div @click="shout(4)"

obj4

/div

/div

/div

/div

// 输出结构: 1 2 4 3

passive

在移动端报仇符,当我们在监听元素滚动事件的时候,会一直触发onscroll事件会让我们的网页变卡,因此我们使用这个修饰符的时候,相当于给onscroll事件整了一个.lazy修饰符

! 滚动事件的默认行为 (即滚动行为) 将会立即触发

! 而不会等待 `onScroll` 完成

! 这其中包含 `event.preventDefault()` 的情况

div von:scroll.passive="onScroll".../div

不要把 .passive 和 .prevent 一起使用,因为 .prevent 将会被忽略,同时浏览器可能会向你展示一个警告报仇符。

passive 会告诉浏览器报仇符你不想阻止事件的默认行为

native

让组件变成像html内置标签那样监听根元素的原生事件报仇符,否则组件上使用 von 只会监听自定义事件

mycomponent von:click.native="doSomething"/mycomponent

使用.native修饰符来操作普通HTML标签是会令事件失效的

鼠标按钮修饰符

鼠标按钮修饰符针对的就是左键、右键、中键点击报仇符,有如下:

left 左键点击

right 右键点击

middle 中键点击

button @click.left="shout(1)"ok/button

button @click.right="shout(1)"ok/button

button @click.middle="shout(1)"ok/button

这些修饰符会限制处理函数仅响应特定的鼠标按钮报仇符。

键盘修饰符

在JavaScript事件中除了前面所说的事件,还有键盘事件,也经常需要检测常见的键值报仇符。在Vue中允许von在监听键盘事件时添加关键修饰符。记住所有的keyCode比较困难,所以Vue为最常用的键盘事件提供了别名:

.enter:回车键

.tab:制表键

.delete:删除键

.esc:返回键

.space:空格键

.up:向上键

.down:向下键

.left:向左键

.right:向右键

键盘修饰符是用来修饰键盘事件(onkeyup报仇符,onkeydown)的,有如下:

keyCode存在很多报仇符,可vue为我们提供了别名,分为以下两种:

普通键(enter、tab、delete、space、esc、up...)

系统修饰键(ctrl、alt、meta、shift...)

// 只有按键为keyCode的时候才触发

input type="text" @keyup.keyCode="shout()"

还可以通过以下方式自定义一些全局的键盘码别名

Vue.config.keyCodes.f2 = 113

vbind修饰符

vbind修饰符主要是为属性进行操作报仇符,用来分别有如下:

async

prop

camel

async

能对props进行一个双向绑定

//父组件

comp :myMessage.sync="bar"/comp

//子组件

this.$emit('update:myMessage',params);

以上这种方法相当于以下的简写

//父亲组件

comp :myMessage="bar" @update:myMessage="func"/comp

func(e){

this.bar = e;

//子组件js

func2(){

this.$emit('update:myMessage',params);

使用async需要注意以下两点:

使用sync的时候报仇符,子组件传递的事件名格式必须为update:value,其中value必须与子组件中props中声明的名称完全一致

注意带有 .sync 修饰符的 vbind 不能和表达式一起使用

将 vbind.sync 用在一个字面量的对象上报仇符,例如 vbind.sync=”{ title: doc.title }”,是无法正常工作的

props

设置自定义标签属性报仇符,避免暴露数据,防止污染HTML结构

input id="uid" title="title1" value="1" :index.prop="index"

camel

将命名变为驼峰命名法报仇符,如将viewBox属性名转换为 viewBox

svg :viewBox="viewBox"/svg

三、应用场景

根据每一个修饰符的功能报仇符,我们可以得到以下修饰符的应用场景:

.stop:阻止事件冒泡报仇符,等同于JavaScript中的event.stopPropagation(),防止事件冒泡

.native:绑定原生事件

.once:事件只执行一次

.self :将事件绑定在自身身上报仇符,相当于阻止事件冒泡,只会触发自己范围内的事件,不包含子元素

.prevent:阻止默认事件报仇符,等同于JavaScript中的event.preventDefault(),防止执行预设的行为(如果事件可取消,则取消该事件,而不停止事件的进一步传播)

.caption:用于事件捕获报仇符,与事件冒泡的方向相反,事件捕获由外到内

.once:只触发一次

.keyCode:监听特定键盘按下

.right:右键

冒泡事件:嵌套两三层父子关系报仇符,然后所有都有点击事件,点击子节点,就会触发从内至外 子节点》父节点的点击事件

系统修饰键

可以用如下修饰符来实现仅在按下相应按键时才触发鼠标或键盘事件的监听器报仇符。

.ctrl

.alt

.shift

.meta

.exact修饰符:允许报仇符你控制由精确的系统修饰符组合触发事件

input修饰符(例如:vmodel.xxxx使用)

.lazy:在改变后才触发(也就是只有input不聚焦的时候才会执行)

.number:将输入的字符串转换为Number类型(可是如果输入字符串报仇符,输出的还是string,只是控制台会警告)

.trim:自动过滤用户输入的首尾空格

自定义按键修饰符别名

在Vue中可以通过config.keyCodes自定义按键修饰符别名报仇符。例如,由于预先定义了keycode 116(即F5)的别名为f5,因此在文字输入框中按下F5,会触发prompt方法,出现alert。

总结

在Vue中,使用von来给元素绑定事件,而为了更好的处理逻辑方面的事物,Vue提供了一个methods报仇符。在methods中定义一些方法,这些方法可以帮助我们处理一些逻辑方面的事情。而在这篇文章中,我们主要介绍了一些事件的修饰符,比如常见的阻止事件冒泡,键盘修饰符等。除此之外,还提供了config.keyCodes提供自定义按键修饰符别名。

阅读:119次

分类栏目