Templates
Interprets a template literal as an HTML template that can efficiently render to and update a container.
Import
Signature
html(strings, values): TemplateResult<1>
Parameters
- strings
TemplateStringsArray
- values
Array<unknown>
Details
The html
tag returns a description of the DOM to render as a value. It is lazy, meaning no work is done until the template is rendered. When rendering, if a template comes from the same expression as a previously rendered result, it's efficiently updated instead of replaced.
A sentinel value that signals a ChildPart to fully clear its content.
Import
Type
symbol
Details
Prefer using nothing
over other falsy values as it provides a consistent behavior between various expression binding contexts. In child expressions, undefined
, null
, ''
, and nothing
all behave the same and render no nodes. In attribute expressions, nothing
removes the attribute, while undefined
and null
will render an empty string. In property expressions nothing
becomes undefined
.
Renders a value, usually a lit-html TemplateResult, to the container.
Import
Signature
render(value, container, options?): RootPart
Parameters
- value
unknown
Any renderable value, typically a {@linkcode TemplateResult} created by evaluating a template tag like {@linkcode html} or {@linkcode svg}.
- container
HTMLElement | DocumentFragment
A DOM container to render to. The first render will append the rendered value to the container, and subsequent renders will efficiently update the rendered value if the same result type was previously rendered there.
- options?
RenderOptions
See {@linkcode RenderOptions} for options documentation.
Details
This example renders the text "Hello, Zoe!" inside a paragraph tag, appending it to the container document.body
.
Interprets a template literal as an SVG fragment that can efficiently render to and update a container.
Import
Signature
svg(strings, values): TemplateResult<2>
Parameters
- strings
TemplateStringsArray
- values
Array<unknown>
Details
The svg
tag function should only be used for SVG fragments, or elements that would be contained inside an <svg>
HTML element. A common error is placing an <svg>
element in a template tagged with the svg
tag function. The <svg>
element is an HTML element and should be used within a template tagged with the html
tag function. In LitElement usage, it's invalid to return an SVG fragment from the render()
method, as the SVG fragment will be contained within the element's shadow root and thus cannot be used within an <svg>
HTML element.
Used to sanitize any value before it is written into the DOM. This can be used to implement a security policy of allowed and disallowed values in order to prevent XSS attacks.
Import
Type
(node: Node, name: string, type: "property" | "attribute") => ValueSanitizer
Details
One way of using this callback would be to check attributes and properties against a list of high risk fields, and require that values written to such fields be instances of a class which is safe by construction. Closure's Safe HTML Types is one implementation of this technique ( https://github.com/google/safe-html-types/blob/master/doc/safehtml-types.md). The TrustedTypes polyfill in API-only mode could also be used as a basis for this technique (https://github.com/WICG/trusted-types).
Import
Type
TemplateResult<SVG_RESULT>
The return type of the template tag functions, html
and svg
.
Import
Type
{_$litType$: T, strings: TemplateStringsArray, values: Array<unknown>}
Details
A TemplateResult
object holds all the information about a template expression required to render it: the template strings, expression values, and type of template (html or svg). TemplateResult
objects do not create any DOM on their own. To create or update DOM you need to render the TemplateResult
. See Rendering for more information.