Angular依赖注入的开销是多少?
What is the overhead of dependency injection in Angular?
我们有一个相当大的 Angular 2/4 应用程序,它使用反应式表单,有数百个表单控件。
仅仅在大约 200 个表单控件组件中注入一个 ChangeDetectorRef 实例是否有很大的开销?
更改检测参考用法:
由于需要围绕组件视图对象创建 ViewRef_
包装器,因此会产生轻微的开销。 ChangeDetectorRef
本身只是 ViewRef_
的一个实例。
这是来源的相关片段,其中 resolveDep
是在 Angular 处理构造函数的依赖项时调用的函数:
function resolveDep(view, elDef, allowPrivateServices, depDef, notFoundValue) {
...
while (view) {
if (elDef) {
switch (tokenKey$) {
...
case ChangeDetectorRefTokenKey: {
var cdView = findCompView(view, elDef, allowPrivateServices);
return createChangeDetectorRef(cdView); <------ create a wrapper
}
export function createChangeDetectorRef(view: ViewData): ChangeDetectorRef {
return new ViewRef_(view);
}
阅读这些文章以了解有关底层视图对象的更多信息:
我们有一个相当大的 Angular 2/4 应用程序,它使用反应式表单,有数百个表单控件。
仅仅在大约 200 个表单控件组件中注入一个 ChangeDetectorRef 实例是否有很大的开销?
更改检测参考用法:
由于需要围绕组件视图对象创建 ViewRef_
包装器,因此会产生轻微的开销。 ChangeDetectorRef
本身只是 ViewRef_
的一个实例。
这是来源的相关片段,其中 resolveDep
是在 Angular 处理构造函数的依赖项时调用的函数:
function resolveDep(view, elDef, allowPrivateServices, depDef, notFoundValue) {
...
while (view) {
if (elDef) {
switch (tokenKey$) {
...
case ChangeDetectorRefTokenKey: {
var cdView = findCompView(view, elDef, allowPrivateServices);
return createChangeDetectorRef(cdView); <------ create a wrapper
}
export function createChangeDetectorRef(view: ViewData): ChangeDetectorRef {
return new ViewRef_(view);
}
阅读这些文章以了解有关底层视图对象的更多信息: