Angular渲染器与Angular编译器

时间:2018-07-16 10:51:15

标签: angular

我无法确切说明角度渲染器是什么。根据某些消息来源,它是part of compiler that compiles the templates to JS code

根据其他一些来源:

First, there was the original compiler (which was not referred to as a view engine). 
Then, for version 4, the team introduced the view engine, referred to as "renderer2." 
Ivy is next in line.

我从上面了解到,渲染器实际上是编译器本身。

根据第三个消息来源:

When instantiating a component, Angular invokes `renderComponent` and associates 
the renderer it gets with that component instance. Everything Angular will do regarding 
rendering the component (creating elements, setting attributes, subscribing to events, …) 
will go through that renderer object.

这与另一种渲染器方法一致:在普通浏览器上下文中,Renderer2是围绕DOM操作浏览器API的简单默认包装器。

那么,有人可以解释Angular Renderer的确切作用是什么吗? Renderer2 renderer 是否有两种不同的上下文?

1 个答案:

答案 0 :(得分:3)

当您环顾网上时,不清楚角度渲染器和角度编译器之间的区别,但实际上它们是不同的。

角度渲染器

角度渲染器是您的角度应用程序中提供的服务。您可以将其替换为只需要实现Renderer2接口的任何内容。 它的职责是在UI操作之上成为抽象层。角度编译器生成的代码将利用提供的渲染器来操作UI。这是angular跨平台功能的关键部分。

以下是此渲染器的一些实现

注意:渲染器界面随着编译器的更改而随着时间的变化。第一个界面称为Renderer,直到angular 4更改为Renderer2,现在我们将看到带有Angular 7和Ivy的Renderer3出现

Angular编译器

角度编译器是将角度模板转换为打字稿类的部分,它将包含一组指令,这些指令将在其他服务中使用角度渲染器。模板的编译版本与平台无关,无论您拥有哪个目标,都将保持不变。