web-dev-qa-db-ja.com

Angular 2はShadow DOMまたはVirtual DOMを使用しますか?

Angular 2はDOMの更新に使用します。シャドウDOMと仮想DOMのどちらですか?Angular 1?

33
Shivanka

Angular2はshadow DOM(デフォルト)もvirtual DOMも使用しません。

encapsulation: ViewEncapsulation.Emulated(デフォルト)スタイルのカプセル化はエミュレートされるだけなので、shadow DOMはありません。

encapsulation: ViewEncapsulation.Nativeは、ネイティブでそれをサポートするブラウザでshadow DOMを有効にするか、webcomponents polyfillがロードされるときに再びエミュレートされます。

Shadow DOMも、仮想DOMがそうであるようにパフォーマンスをターゲットにしていませんが、スタイルのカプセル化です。

Angular2はvirtual DOMをまったく使用しません。

Angular2には、モデルの変更を検出し、モデルの変更に応じて変更する必要があるDOMの部分のみを更新する変更検出機能があります。

詳細については、 React.jsの仮想DOMのようにシャドウDOMは高速ですか? も参照してください。

37

ReactおよびVueはVirtual DOMを使用しており、Angularは直接DOMレンダリングシステムを使用しています。

Angularバージョン1.xで行ったのと同じことですが、最適化されており、驚きがあります:)

画面上にdrれるものがないため、DOMよりもJavaScriptオブジェクトを使用する方がはるかに高速です。

0
Vaibhav Bacchav