Binding functions inside templates will result in them being created every time a render occurs, resulting in performance loss.
Instead, you should do something like so:
_render() {
return html`<x-foo @event=${this._onClick}>`;
}
_onClick() { ... }
As lit will automatically bind it to the correct context.
This rule disallows using .bind
in templates.
The following patterns are considered warnings:
html`<x-foo @event=${this.someMethod.bind(this)}>`;
html`<x-foo @event=${someFunc.bind(this)}>`;
The following patterns are not warnings:
html`foo ${someVar}`;
If you don't care about rendering performance, then you will not need this rule.