可以用 修饰器 来调整 DOM 事件处理器的行为。比如说,一个拥有 once
修饰器的处理器只会运行一次:
App.svelte
<button on:click|once={() => alert('clicked')}>
Click me
</button>
下面是所有的修饰器:
preventDefault
- 在运行处理器之前调用event.preventDefault()
,对于在客户端处理表单会有用stopPropagation
- 调用event.stopPropagation()
阻止事件达到下一个元素passive
- 在触屏或者滚轮事件中提升滚动性能(Svelte 会在可行的时候自动加上这个)nonpassive
- 显式地设置passive: false
capture
- 在 事件捕获 期触发处理器,而不是 事件冒泡 期once
- 在第一次运行后移除该处理器self
- 只有在event.target
是元素自身时才触发处理器trusted
- 只有当event.isTrusted
是true
才触发处理器,这意味着事件只会被用户行为触发,而不会被形如element.dispatchEvent(...)
的 JavaScript 代码触发
你也可以同时使用多个修饰器,比如:on:click|once|capture={...}
。