2

我有一个关于 Angular 2 内部 DOM 操作的“简单”问题。Angular 2 是使用虚拟 DOM、增量 DOM 还是什么。我一直在互联网上寻找了解 Angular 2 在内部用于 DOM 操作的内容,但我似乎找不到它。

我了解他们如何创建组件以及他们如何让我们开发人员使用我们想要的封装策略。

我知道它使用区域来检测更改并使用可观察对象来应用更改,但是他们是否为内部 DOM 操作提出了自己的逻辑,还是在真实 DOM 上进行操作?

React 有虚拟 dom,Ember 使用 glimmer,其他框架使用增量 dom。Angular 2 使用什么?

TIA。

4

1 回答 1

1

每当我们创建一个组件时,Angular 都会将其模板放入 a shadowRoot中,这是该特定组件的 Shadow DOM。这样做,我们可以免费获得 DOM 树和样式封装,对吧?但是如果我们在浏览器中没有 Shadow DOM 怎么办?这是否意味着我们不能在这些环境中使用 Angular 2?我们可以。事实上,Angular 2 默认不使用原生 Shadow DOM,它使用的是仿真。从技术上讲,它也不会shadowRoot为我们的组件创建一个,以防不使用本机 Shadow DOM。

更多:http ://blog.thoughtram.io/angular/2015/06/29/shadow-dom-strategies-in-angular2.html#understanding-shadow-dom

于 2016-11-23T23:04:38.947 回答