Angular 2是使用Shadow DOM还是Virtual DOM ?



Angular 2用什么来更新DOM ?是Shadow DOM还是Virtual DOM ?Angular 1中有这样的概念吗?

update

Shadow DOM现在直接支持。

原来

Angular2不使用影子DOM(默认),也不使用虚拟DOM

对于encapsulation: ViewEncapsulation.Emulated(默认),没有影子DOM,因为样式封装只是模拟的。

encapsulation: ViewEncapsulation.Native在浏览器上启用shadow DOM,或者在加载webcomponents polyfill时再次模拟。

Shadow DOM也不像虚拟DOM那样以性能为目标,而是以样式封装为目标。

Angular2根本不使用虚拟DOM

Angular2有变更检测功能,可以检测模型的变更,并且只根据模型的变更更新DOM中需要更改的部分。

有关更多详细信息,请参见Shadow DOM在React.js中是否像Virtual DOM一样快?

React和Vue使用Virtual DOM,而Angular使用直接DOM渲染系统。

和Angular在版本1中做的是一样的。X,但它是优化的,有一个惊喜给你:)

使用JavaScript对象比使用DOM要快得多,因为屏幕上没有任何内容

Angular 2和之后的版本没有使用Virtual DOM,而是使用变更检测机制来检测任何更改并对其采取行动,而ReactVue使用Virtual DOM真实DOM进行比较来检测发生的任何更改。

另一方面,在某种程度上,Angular确实在封装中使用Shadow DOM来隐藏标记结构、样式和行为,并将其与页面上的其他代码或组件分开,这样不同的部分就不会发生冲突。您可以在这里了解更多关于封装的信息。 在Angular 1AngularJS中,没有Virtual DOMShadow DOM的概念。

相关内容

最新更新