我对Angular 2内部DOM操作有一个“简单”的问题。 Angular 2是使用Virtual DOM,Incremental DOM还是什么。我一直在互联网上查看Angular 2在内部使用DOM操作的内容,但我似乎无法找到它。
我理解他们如何创建组件以及它们如何允许开发人员使用我们想要的封装策略。
据我所知,它使用区域来检测更改和可观察项以应用更改但是它们是否为内部DOM操作提出了自己的逻辑,或者它们是否在真正的DOM上操作?
React有虚拟dom,Ember使用glimmer,其他框架使用增量dom。 Angular 2使用什么?
TIA。
答案 0 :(得分:1)
每当我们创建一个组件时,Angular都会将其模板放入
shadowRoot
,它是该特定组件的Shadow DOM。 这样做,我们免费获得DOM树和样式封装,对吗? 但是如果我们在浏览器中没有Shadow DOM呢?这是否意味着我们 在这些环境中不能使用Angular 2?我们可以。事实上,Angular 2 默认情况下不使用本机Shadow DOM,它使用模拟。成为 技术上正确,它也不会为我们创建shadowRoot
组件,如果没有使用本机Shadow DOM。