Web组件

Web组件（）是W3C正在向HTML和DOM规范添加的一套功能，它允许在Web文档和Web应用程序中创建可重用的或组件。这样做的目的是将基于组件的软件工程引入万维网。组件模型将允许单个HTML元素的封裝和互操作性。

Web组件由四大部分组成，可单独或组合使用。
 自定义元素 - 定义新HTML元素的API
 影子DOM - 封装的DOM和样式，配以组合化
 HTML导入 - 将HTML文档导入其他文档的声明方法
 HTML模板 - <template>元素 ，允许文档包含惰性的DOM块

浏览器 
Google Chrome、Mozilla Firefox、Microsoft Edge、Safari和Opera已支持HTML模板。

自定义元素和影子DOM的一个早期版本（称为v0）已在某些基于Blink的浏览器（例如Google Chrome和Opera）以及Mozilla Firefox（需要手动修改配置）中支持。较新版的自定义元素和影子DOM（v1）API正在Safari 10、Google Chrome (53.0.2785)以及Mozilla Firefox中开发。Microsoft Edge尚未开始实现自定义元素和影子DOM。

对旧版浏览器的向后兼容性可以使用基于JavaScript的实现。

程序库 
已有多个程序库在创建自定义元素时基于Web组件以提高抽象度。几个比较为人熟知的是：X-Tag 、Slim.js、和Bosonic。

其中的Bosonic和Polymer提供可免费使用的现成组件。这些组件可交替使用，因为它们都基于开放的Web技术。

历史 
Alex Russell在2011年的Fronteers大会上首次提出Web组件。

Google在2013年发布了一个基于Web组件的程序库“Polymer”。

参考资料

外部链接 
 Webcomponents.org 
 slim.js library 
网页标准
Web编程