目录
类别
新增功能/Splendid New Feature
置信度
Announcement
起始时间
2018-07-11
内容
Shadow DOM API 是 Web Components 的重要组成部分,用于实现节点、样式、事件等内容的轻量级隔离,保证视图的独立性。
截止目前,Shadow DOM API 已经经历过一次重大调整,最初的 API 现称为 V0,使用 element.createShadowRoot() 创建 Shadow 节点;当前的 API 称为 V1,使用 element.attachShadow() 。
同时,V0 中使用 <content> 标签进行占位,而 V1 中改用 <slot> 标签。而 Angular 也参照 Shadow DOM V0 的语义设计了 <ng-content> 标签。
之前版本的 Angular 中,使用 ViewEncapsulation.Native 时将基于 element.attachShadowRoot 进行样式隔离。而随着越来越多的浏览器开始支持 Shadow DOM V1 以及停止对 V0 的支持,element.attachShadowRoot 的可用性十分有限。
为此,自 6.0.8 版本开始,Angular 新增了ViewEncapsulation.ShadowDom 的选项,将会使用 Shadow DOM V1 的 element.attachShadow API 来实现样式隔离。
之后,还将会提供新的 <ng-slot> 标签来保证对 Shadow DOM V1 的一致性。