Angular:我为什么要使用'encapsulation:ViewEncapsulation.Native'?

时间:2017-03-25 13:32:35

标签: angular dom shadow-dom

在Angular中,默认模式为 encapsulation: ViewEncapsulation.Emulated

此模式使用CSS选择器启用样式封装。但是,'encapsulation:ViewEncapsulation.Native'也实现了样式封装,但是使用了另一种技术shadow DOM。虽然技术不同,但结果是相同的。

如果是这样,我为什么要使用“ViewEncapsulation.Native”?在“ViewEncapsulation.Emulated”中我没有进入这种模式会得到什么?

1 个答案:

答案 0 :(得分:2)

使用“Native”封装,您可以获得新的Shadow DOM规范提供的所有功能。

This blog article解释了Angular2中不同模式之间的差异。

由于Emulated模仿了Native模式,因此您将获得可以模拟的所有功能

无法模拟的是真正的 CSS封装(带有!important指令的规则可以应用于您的仿真组件)和范围选择(借助querySelector() })。

使用Native模式,渲染应该更快(因为它是......本机!)。