模板

将模板字面量解释为 HTML 模板,可以有效地渲染到容器并更新容器。

导入

签名

html(strings, values): TemplateResult<1>

参数

strings
TemplateStringsArray
values
Array<unknown>

详情

html 标签返回一个 DOM 渲染描述作为值。它很懒惰,意味着在模板渲染之前不会执行任何操作。渲染时,如果模板来自与之前渲染结果相同的表达式,则会有效地更新它而不是替换它。

一个哨兵值,它向 ChildPart 发出完全清除其内容的信号。

导入

类型

symbol

详情

建议使用 nothing 而不是其他假值,因为它在各种表达式绑定上下文中提供了一致的行为。在子表达式中,undefinednull''nothing 都会表现相同,并且不渲染任何节点。在属性表达式中,nothing删除属性,而 undefinednull 将渲染一个空字符串。在属性表达式中,nothing 将变为 undefined

将一个值(通常是 lit-html TemplateResult)渲染到容器中。

导入

签名

render(value, container, options?): RootPart

参数

value
unknown

任何 可渲染值,通常是通过评估模板标记(如 {@linkcode html} 或 {@linkcode svg})创建的 {@linkcode TemplateResult}。

container
MDN HTMLElement | MDN DocumentFragment

要渲染到的 DOM 容器。第一次渲染将渲染的值附加到容器,后续渲染如果在该处之前渲染了相同的结果类型,则会有效地更新渲染的值。

options?
RenderOptions

有关选项文档,请参阅 {@linkcode RenderOptions}。

详情

此示例在段落标签内渲染文本“Hello, Zoe!”,并将其附加到容器 document.body 中。

将模板字面量解释为 SVG 片段,可以有效地渲染到容器并更新容器。

导入

签名

svg(strings, values): TemplateResult<2>

参数

strings
TemplateStringsArray
values
Array<unknown>

详情

svg 标签函数应仅用于 SVG 片段,或在 <svg> HTML 元素内部包含的元素。常见错误是在用 svg 标签函数标记的模板中放置 <svg> 元素<svg> 元素是 HTML 元素,应在用 html 标签函数标记的模板中使用。在 LitElement 使用中,从 render() 方法返回 SVG 片段是无效的,因为 SVG 片段将包含在元素的 Shadow Root 中,因此不能在 <svg> HTML 元素中使用。

用于在将任何值写入 DOM 之前对其进行清理。这可以用来实现允许和不允许值的安全性策略,以防止 XSS 攻击。

导入

类型

(node: Node, name: string, type: "property" | "attribute") => ValueSanitizer

详情

使用此回调的一种方法是根据高风险字段列表检查属性和属性,并要求写入此类字段的值为按构造安全的类的实例。Closure 的安全 HTML 类型是此技术的实现方式之一( https://github.com/google/safe-html-types/blob/master/doc/safehtml-types.md)。API 仅模式下的 TrustedTypes polyfill 也可以用作此技术的依据 (https://github.com/WICG/trusted-types)。

导入

类型

TemplateResult<SVG_RESULT>

模板标记函数 htmlsvg 的返回值类型。

导入

类型

{_$litType$: T, strings: TemplateStringsArray, values: Array<unknown>}

详情

TemplateResult 对象保存渲染模板表达式所需的所有信息:模板字符串、表达式值和模板类型(html 或 svg)。TemplateResult 对象不会自行创建任何 DOM。要创建或更新 DOM,您需要渲染 TemplateResult。有关详细信息,请参阅 渲染