Renderer
和 ElementRef
有什么区别?在 Angular 中,两者都用于 DOM 操作。我目前单独使用 ElementRef
来编写 Angular 2 指令。如果我获得有关 Renderer
的更多信息,我可以在未来的指令中使用它。
最佳答案
Renderer
是一个对 DOM 进行部分抽象的类。
使用 Renderer
操作 DOM 不会破坏服务器端渲染或 Web Worker(直接访问 DOM 会破坏)。
ElementRef
是一个可以保存对 DOM 元素的引用的类。
这又是一种抽象,不会在浏览器 DOM 实际上不可用的环境中中断。
如果 ElementRef
被注入(inject)到组件中,则注入(inject)的实例是对当前组件的宿主元素的引用。
还有其他方法可以获取 ElementRef
实例,例如 @ViewChild()
、@ViewChildren()
、@ContentChild( )
, @ContentChildren()
。在这种情况下,ElementRef
是对模板或子项中匹配元素的引用。
Renderer
和 ElementRef
不是“这个或那个”,而是它们必须一起使用才能获得完整的平台抽象。
Renderer
作用于 DOM,ElementRef
是对 DOM 中元素的引用,Renderer
作用于该元素。
关于angular - Angular 2 中 Renderer 和 ElementRef 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39785118/