之前接受的答案是错误的。lit-extended
已弃用,并且该解决方法仅在 2018 年的一段时间内有效,同时lit-html
正在切换到新语法。
消费事件的正确方法是:
html`<button @click=${e => console.log('clicked')}>Click Me</button>`
您也可以通过使用方法分配对象来配置事件handleEvent
:
const clickHandler = {
// This fires when the handler is called
handleEvent(e) { console.log('clicked'); }
// You can specify event options same as addEventListener
capture: false;
passive: true;
}
html`<button @click=${clickHandler}>Click Me</button>`
还有lit-element
一个为您提供了使用 Lit 和 TypeScript 增强功能构建 Web 组件的基础,以将创建事件处理程序的样板噪音转移到装饰器中:
@eventOptions({ capture: false, passive: true })
handleClick(e: Event) { console.log('clicked'); }
render() {
return html`<button @click=${this.handleClick}>Click Me</button>`
}