Vue.js 的指令修饰符是以 . 指定的特殊后缀,用于指令的特殊行为。通常用于 .prevent、.stop、.self、.once等。
使用修饰符的好处:
- 可以避免在指令中使用过度复杂的 JavaScript 逻辑。
- 提高模板的可读性。
常用的修饰符有:
- .prevent:调用 event.preventDefault() 阻止默认事件。
html
<form v-on:submit.prevent="onSubmit"></form>
- .stop:调用 event.stopPropagation() 阻止事件冒泡。
html
<div v-on:click="doThis">
<button v-on:click.stop="doThat"></button>
</div>
- .self:只有 event.target 是当前元素自身时才触发处理函数。
html
<div v-on:click.self="doThat">...</div>
- .once:只触发一次处理函数。
html
<button v-on:click.once="doThis"></button>
- .native:监听组件根元素的原生事件。
html
<my-component v-on:click.native="doTheNativeClick"></my-component>
- .passive:告诉浏览器你不想阻止默认行为。
html
<!-- 滚动事件的默认行为是滚动,我们不想阻止这个默认行为 -->
<div v-on:scroll.passive="onScroll">...</div>
- 自定义修饰符:
在组件中定义,然后使用在元素中:
js
directives: {
'scroll': {
inserted: function (el, binding) {
el.addEventListener('scroll', binding.value)
}
}
}
<div v-scroll="onScroll">...</div>
以上是 Vue.js 中常用的修饰符,可以让我们在模板中简洁地表达复杂的逻辑。