📅  最后修改于: 2023-12-03 14:40:58.316000             🧑  作者: Mango
Element - 修饰符是一个 Vue.js 框架中的概念。它是用于修改指令或组件行为的 CSS 类。通常, 它们用来添加样式、修改元素内容, 或者改变元素行为。使用这些修饰符可以简化开发过程,提高代码的可读性。
Vue.js 中有三种类型的 Element - 修饰符:
Vue.js 提供了如下事件修饰符:
.stop
: 阻止事件冒泡.prevent
: 阻止默认事件.capture
: 以捕获模式进行监听事件.self
: 只处理自己的事件.once
: 只触发一次事件,之后移除.passive
: 声明监听器不会调用 preventDefault()示例代码:
<!-- 点击事件不会冒泡 -->
<div @click.stop="doThis"></div>
<!-- 提交事件不再重载页面 -->
<form @submit.prevent="onSubmit"></form>
<!-- 修饰符可以串联 -->
<a @click.stop.prevent="doThat"></a>
<!-- 监听事件时使用 capture 模式 -->
<!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 -->
<div @click.capture="doThis">...</div>
<!-- 只有在 event.target 是当前元素自身时触发处理函数 -->
<div @click.self="doThat">...</div>
<!-- 点击事件将只会触发一次 -->
<div @click.once="doThis"></div>
<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即元素自身触发的事件先在此处理,然后才交由内部元素进行处理 -->
<!-- 这里添加了一个滚动事件的监听器,这样我们就可以在滚动时调用 `doThis()`。
<!-- 同时由于 `.passive` 修饰符,该监听器不会调用 preventDefault() -->
<div @scroll.passive="doThis">...</div>
Vue.js 提供了如下按键修饰符:
.enter
.tab
.delete
(捕获“删除”和“退格”键).esc
.space
.up
.down
.left
.right
示例代码:
<!-- 只有在 `key` 是 `Enter` 时调用 `submit()` -->
<input @keyup.enter="submit">
Vue.js 提供了如下表单修饰符:
.lazy
: 取代 input
监听 change
事件.number
: 输入值自动转为数字.trim
: 输入值自动过滤首尾空格.debounce
: 延迟输入值更新的时间示例代码:
<!-- 取代 `v-model`,监听 `input` 事件实现 -->
<input v-model.lazy="msg" >
<!-- 只允许输入数字 -->
<input v-model.number="age" type="number">
<!-- 自动过滤首尾空白字符 -->
<input v-model.trim="msg">
<!-- 延迟 300ms 更新 -->
<input v-model.debounce="msg" >
Element - 修饰符是 Vue.js 中非常有用的一个特性。它可以使组件行为更加灵活和可定制,增加了代码的可读性。开发者可以根据实际需求,根据文档提供的修饰符,通过简单的配置,就可以方便地实现自己想要的组件行为。