2016-11-23 75 views
2

我有关于Angular 2内部DOM操作的“简单”问题。 Angular 2是使用虚拟DOM,增量DOM还是什么。我一直在遍寻互联网,以了解Angular 2在内部使用DOM进行操作,但似乎无法找到它。适用于Angular 2的DOM操作

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

我知道它使用区域来检测应用更改的变化和可观察性,但是他们是否提供了自己的内部DOM操作逻辑,还是他们在真正的DOM上操作?

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

TIA。

+1

你可以操纵与指令中的DOM中Angular2 https://angular.io/docs/ts/latest/guide/attribute-directives.html – tibbus

+0

嘿@tibbus感谢您的评论。我期待了解Angular 2如何在内部操纵DOM。 React使用虚拟DOM。 – btinoco

+0

看看[http://blog.thoughtram.io/angular/2015/06/29/shadow-dom-strategies-in-angular2.html] –

回答

1

每当我们创建一个组件,角把它的模板为 shadowRoot,这是特定组件的阴影DOM。 这样做,我们可以免费获得DOM树和样式封装,对吧? 但是如果我们在浏览器中没有Shadow DOM呢?这是否意味着我们 不能在这些环境中使用Angular 2?我们可以。实际上,Angular 2 默认情况下不使用本机Shadow DOM,它使用仿真。在技​​术上正确为 ,但在没有使用本地Shadow DOM的情况下,它也不会为我们的 组件创建shadowRoot

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

+0

感谢您的答案@manolis。请参阅React使用虚拟dom在内部操作dom。它对真实的虚拟世界和虚拟世界虚拟世界进行差异化,并修改已更改的节点。 Ember用Glimmer操纵dom。然后我们有增量dom来操纵其他框架中的dom。我想知道Angular 2使用什么?像虚拟dom,微光,增量dom,原始dom或什么? – btinoco