A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://developer.mozilla.org/zh-CN/docs/Web/API/Web_components below:

Web Component - Web API

Web Component

Web Component 是一套不同的技术,允许你创建可重用的定制元素(它们的功能封装在你的代码之外)并且在你的 web 应用中使用它们。

概念和使用

作为开发者,我们都知道尽可能多的重用代码是一个好主意。这对于自定义标记结构来说通常不是那么容易 — 想想复杂的 HTML(以及相关的样式和脚本),有时你不得不写代码来呈现自定义 UI 控件,并且如果你不小心的话,多次使用它们会使你的页面变得一团糟。

Web Components 旨在解决这些问题 — 它由三项主要技术组成,它们可以一起使用来创建封装功能的定制元素,可以在你喜欢的任何地方重用,不必担心代码冲突。

实现 web component 的基本方法通常如下所示:

  1. 创建一个类或函数来指定 web 组件的功能,如果使用类,请使用 ECMAScript 2015 的类语法 (参阅类获取更多信息)。
  2. 使用 CustomElementRegistry.define() 方法注册你的新自定义元素,并向其传递要定义的元素名称、指定元素功能的类、以及可选的其所继承自的元素。
  3. 如果需要的话,使用 Element.attachShadow() 方法将一个 shadow DOM 附加到自定义元素上。使用通常的 DOM 方法向 shadow DOM 中添加子元素、事件监听器等等。
  4. 如果需要的话,使用 <template> 和 <slot> 定义一个 HTML 模板。再次使用常规 DOM 方法克隆模板并将其附加到你的 shadow DOM 中。
  5. 在页面任何你喜欢的位置使用自定义元素,就像使用常规 HTML 元素那样。
教程
使用自定义元素

介绍如何使用自定义元素的功能来创建简单的 web component,以及生命周期回调和其他更高级的功能。

使用 shadow DOM

介绍 shadow DOM 的基础知识,展示如何向元素中附加 shadow DOM,添加到 shadow DOM 树,添加样式等等。

使用 template 和 slot

介绍如何使用 <template> 和 <slot> 元素定义可重用的 HTML 结构,然后在 Web component 中使用该结构。

参考 自定义元素
CustomElementRegistry

包含自定义元素相关功能,最值得注意的是 CustomElementRegistry.define() 方法用来注册新的自定义元素,这样就可以在文档中使用它们。

Window.customElements

返回 CustomElementRegistry 对象的引用。

生命周期回调

定义在自定义元素的类定义中的特殊回调函数,影响其行为:

创建自定义内置元素的扩展

定义了以下扩展:

CSS 伪类

与自定义元素特别相关的伪类:

Shadow DOM
ShadowRoot

表示 shadow DOM 子树的根节点。

Element extensions

与 shadow DOM 有关的 Element 接口的扩展:

Node 相关拓展

与 shadow DOM 相关的 Node 接口的拓展:

Event 拓展

与 shadow DOM 相关的 Event 接口的扩展:

HTML template
<template>

包含一个 HTML 片段,不会在文档初始化时渲染。但是可以在运行时使用 JavaScript 显示。主要用作自定义元素结构的基础。关联的 DOM 接口是HTMLTemplateElement。

<slot>

web component 中的一个占位符,你可以填充自己的标记,这样你就可以创建单独的 DOM 树并将它们呈现在一起。关联的 DOM 接口是HTMLSlotElement。

slot 全局 HTML 属性

将在 shadow DOM 树中的插槽分配给一个元素。

Element.assignedSlot

一个只读属性,它返回对插入此元素的 <slot> 的引用。

Text.assignedSlot

一个只读属性,它返回对插入此文本节点的 <slot> 的引用。

Element 扩展

与插槽相关的 Element 接口的扩展:

CSS 伪元素

slots 特别相关的伪元素:

slotchange 事件

当插槽中的节点改变时在 HTMLSlotElement 实例(<slot> 元素)上触发。

示例

在 web-components-examples,我们正在构建一些例子。以后会添加更多。

规范 浏览器兼容性 html.elements.template api.ShadowRoot 参见

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4