Angular 2使用Shadow DOM还是Virtual DOM?

Shi*_*nka 34 shadow-dom virtual-dom angular

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

Gün*_*uer 39

Angular2不使用shadow DOM(默认)也不使用虚拟DOM.

使用encapsulation: ViewEncapsulation.Emulated(默认)没有shadow DOM,因为样式封装仅被模拟.

encapsulation: ViewEncapsulation.Native在本机支持它的浏览器上启用shadow DOM,或者在加载webcomponents polyfill时再次模拟它.

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

Angular2根本不使用虚拟DOM.

Angular2具有更改检测功能,可检测模型的更改,并仅根据模型更改更新需要更改的DOM部分.

有关更多详细信息,请参阅React.js中的影子DOM是否像Virtual DOM一样快?

  • 在[MDN网站]上查看[Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)是什么(https://developer.mozilla.org/en-US /]和[Angular Guide](https://angular.io/guide/)中的[ViewEncapsulation](https://angular.io/guide/component-styles#view-encapsulation) (2认同)
  • 只是突然说 Angular 2 *可以*使用 Shadow DOM,只是默认情况下不使用:https://angular.io/guide/component-styles#view-encapsulation (2认同)
  • **更新:** 自 Angular 6.0.8 起,`encapsulation: ViewEncapsulation.Native` 现已弃用,并替换为 `encapsulation: ViewEncapsulation.ShadowDom`,请参阅 /sf/answers/3766460911/ 和https://github.com/angular/angular-cli/issues/11526 (2认同)