Web Component Guidelines
A random selection of guidelines for how we write web components.
Scoped Elements
- All elements which use other custom elements should use
ScopedElementsMixinfrom '@open-wc/scoped-elements' instead of requiring the used custom elements to be globally registered. This avoids the internally used elements to leak and avoids conflicts.
class MyElement extends ScopedElementsMixin(LitElement) {
static get scopedElements() {
return {
"my-button": MyButton,
"my-panel": MyPanel,
};
}
}
- Instead of
document.createElement()when creating nested custom elements usethis.createScopedElement()
func() {
let elm = this.createScopedElement('my-panel');
}
Internal State
Internal state should be prefixed with a "_" and not provide an attribute by setting state: true:
static get properties() {
return {
_internalThing: {state: true},
}
}