Web Components 是浏览器原生支持的可复用自定义元素标准,由 Custom Elements(定义带短横线标签及生命周期)、Shadow DOM(提供样式与 DOM 隔离)和 HTML Templates(惰性加载结构模板)三部分构成,核心价值在于原生性与跨框架解耦。

Web Components 是浏览器原生支持的一套技术标准,用来创建可复用、封装良好的自定义 HTML 元素。它不是某个库或框架,而是由几个底层 API 组成的规范,包括 Custom Elements、Shadow DOM 和 HTML Templates。
Custom Elements:定义自己的 HTML 标签
你可以用 customElements.define() 注册一个全新的 HTML 标签,比如 或 。这个标签有自己独立的结构、样式和行为,且能像原生元素一样使用,支持属性、事件、生命周期钩子(如 connectedCallback)。
- 名称必须包含短横线(
-),例如user-card,不能是usercard - 可以继承内置元素(如
HTMLButtonElement),实现“增强型按钮” - 不依赖框架,但可与 React/Vue 等共存
Shadow DOM:真正的样式与 DOM 隔离
在自定义元素内部,你可以调用 attachShadow({ mode: 'open' }) 创建一个影子根(shadow root)。它会形成一个独立的 DOM 子树,外部 CSS 无法穿透影响其中内容,内部样式也不会泄漏出去。
-
mode: 'open'允许 JS 从外部访问 shadow root;'closed'则完全隐藏 - 样式作用域天然隔离,避免全局污染,也无需 CSS Modules 或 scoped style
- 可通过
::part()和::theme()(部分浏览器支持)对外暴露可定制的样式钩子
HTML Templates:声明式、惰性加载的结构模板
标签用于存放不会被立即渲染的 HTML 片段。它只在 JS 中通过 content.cloneNode(true) 实例化后才真正生效,非常适合做 Web Components 的默认结构。
自从百度屏蔽淘宝客网站、淘宝抛弃淘宝客之后,个人站长集体陷入了恐慌之中。此时,什么值得买网的异军突起引起了广大个人站长的极大关注。做一个什么值得买一样的导购网站成了众多个人站长的一致心愿! TP-COUPON 导购系统 即是让个人站长实现此心愿的绝佳选择! 欢迎个人站长选用。V1.1版 更新记录:1.修正请求时查询淘宝店铺错误的bug2.删除一些无用的代码
立即学习“Java免费学习笔记(深入)”;
- 模板内容不会被解析执行(script 不运行、图片不加载),性能友好
- 配合
document.querySelector('template').content可快速注入到 Shadow DOM 中 - 支持 slot 分发,实现类似 Vue 的
内容投影功能
基本上就这些。Web Components 的核心价值在于“原生”和“解耦”——不依赖构建工具、不绑定特定生态,适合做设计系统、微前端基础组件或跨框架共享 UI。写法略偏底层,但现代浏览器支持已很完善(Chrome/Firefox/Safari/Edge 均支持)。









