代码之家  ›  专栏  ›  技术社区  ›  Estus Flask

Angular 2原生视图封装

  •  3
  • Estus Flask  · 技术社区  · 9 年前

    已经有了 an answered question 这就解释了 ViewEncapsulation.Emulated , ViewEncapsulation.Native 广告 ViewEncapsulation.None .

    假设有一个Electron应用程序保证与Chromium版本捆绑在一起,该版本本身支持阴影DOM和 ViewEncapsulation.本机 。这种情况如何从本机封装中受益,以避免仿真开销?

    另一种可能的情况是在Angular 2应用程序中调试视图,由于 ViewEncapsulation.仿真 .

    是否可以将默认封装更改为 ViewEncapsulation.本机 对于所有未指定 encapsulation ?

    其他实用的设备有哪些 ViewEncapsulation.本机 ?

    1 回复  |  直到 8 年前
        1
  •  3
  •   Estus Flask    9 年前

    根据 https://github.com/angular/angular/pull/7883

    import {CompilerConfig} from '@angular/compiler';
    
    bootstrap(AppComponent, [{
      provide: CompilerConfig,
      useValue: new CompilerConfig({defaultEncapsulation: ViewEncapsulation.Native})
    }])
    

    不过我自己还没有试过。

    我猜 ViewEncapsulation.Native 如果只有一个目标是Chrome,这将是最有利的。在其他浏览器发布其影子DOM支持之前,似乎还需要相当长的时间。

    主要优点是Angular2不需要向每个组件元素添加属性,并且不是所有组件样式都需要添加到 <head>

    在大多数情况下,性能不会成为问题 Emulated 使用脱机模板编译器时。