我们有一个相当大的角2/4应用程序,它使用反应性表单,有数百个表单控件。
仅仅通过在大约200个表单控件组件中注入一个ChangeDetectorRef实例,是否会产生很大的开销?
更改检测参考用法:
发布于 2017-08-23 08:05:32
由于需要在component对象周围创建一个ViewRef_包装器,造成了轻微的开销。ChangeDetectorRef本身只是ViewRef_的一个实例。
下面是源代码的相关片段,其中resolveDep是当构造函数的角进程依赖项调用的函数:
function resolveDep(view, elDef, allowPrivateServices, depDef, notFoundValue) {
...
while (view) {
if (elDef) {
switch (tokenKey$$1) {
...
case ChangeDetectorRefTokenKey: {
var cdView = findCompView(view, elDef, allowPrivateServices);
return createChangeDetectorRef(cdView); <------ create a wrapper
}
export function createChangeDetectorRef(view: ViewData): ChangeDetectorRef {
return new ViewRef_(view);
}请阅读以下文章以了解更多有关基础视图对象的信息:
https://stackoverflow.com/questions/45833414
复制相似问题