The Lit filter makes it easier to build LitElement web components.
When a class definition is encountered that derives from
LitElement, the following transformations are applied:
importstatement for LitElement will be generated if the esm filter is also applied.
instance variables (e.g.,
@x) are not mapped to properties prefixed with either an underscore (
_) or a hash (
References to instance variables will cause entries to be added to the
static propertiesproperty if not already present, and simple type inferencing will be used to determine the type. (To bypass this for truly internal state, use a prefixed ivar name like
self.stylesmethods that return a string will have that string mapped to a
cssliteral string. These are three alternate syntaxes to specifying static styles.
renderand other methods that return a string will have that string mapped to a
htmlliteral string if that string starts with a less than sign. This also applies, recursively, to all interpolated values within that string. (For a method where you don’t want the
htmlliteral used, just return a string variable or some such statement instead.)
Methods referenced within HTML literals are not automatically bound, but will be automatically prefixed with
- LitElement inheritance will also automatically prefix inherited properties
and methods with
this., and will autobind inherited methods when referenced without any parameters or parenthesis.
custom_element) calls are converted to
queryAsynccalls are converted to corresponding
superis not called by the
initializefunction, a call to
superwill be added.
For more information, see the Rails example.