Web 组件正在获得跨浏览器支持,社区正在突飞猛进地发展,并且有一个全新的 Web 组件目录,可让您准确找到所需的组件。
您是否曾想过构建自己的独立 JavaScript 组件,以便在多个项目中轻松使用,或与其他开发者分享,无论他们使用何种 JavaScript 框架?Web 组件可能适合您。
Web 组件是一组新的 Web 平台功能,可让您创建自己的 HTML 元素。每个新的自定义元素都可以有一个自定义标记,例如 <my-button>,并具有内置元素的所有优点 - 自定义元素可以具有属性和方法、触发和响应事件,甚至可以具有封装的样式和 DOM 树,以自带外观和风格。
通过提供基于平台的低级组件模型,Web 组件可让您构建和共享可重复使用的元素,从专用按钮到日期选择器等复杂视图,不一而足。由于 Web 组件是使用包含强大封装基元的平台 API 构建的,因此您甚至可以在其他 JavaScript 库或框架中使用这些组件,就像它们是标准 DOM 元素一样。
您之前可能听说过 Web 组件 - Web 组件规范的早期版本 v0 在 Chrome 33 中发布。
如今,得益于浏览器供应商之间的广泛协作,下一代 Web 组件规范 (v1) 正在获得广泛支持。 Chrome 分别从 Chrome 53 和 Chrome 54 开始支持构成 Web 组件的两个主要规范:Shadow DOM 和自定义元素。Safari 在 Safari 10 中提供了对 Shadow DOM v1 的支持,并且已在 WebKit 中完成了 Custom Elements v1 的实现。Firefox 目前正在开发 Shadow DOM 和自定义元素 v1,而 Shadow DOM 和自定义元素均已列入 Edge 的路线图。
如需使用 v1 实现定义新的自定义元素,只需使用 ES6 语法创建一个扩展 HTMLElement 的新类,并向浏览器注册该类:
class MyElement extends HTMLElement {...}
window.customElements.define('my-element', MyElement);
新的 v1 规范非常强大,我们已经整理了有关使用 Custom Elements v1 和 Shadow DOM v1 的教程,以帮助您入门。
webcomponents.org
Web 组件社区也在突飞猛进地发展。我们很高兴看到更新后的 webcomponents.org 网站(Web 组件社区的焦点)发布,其中包括一个供开发者分享其元素的集成目录。
webcomponents.org 网站包含有关 Web 组件规范、更新和 Web 组件社区内容的信息,并显示其他开发者构建的开源元素和元素集合的文档。
您可以使用 Google 的 Polymer 等库开始构建您的第一个元素,也可以直接使用低级 Web Component API。然后,在 webcomponents.org 上发布您的元素。
祝您组件化顺利!