2017-08-23 14 views
1

私たちは、数百のフォームコントロールで反応性フォームを使用する非常に大きなAngular 2/4アプリケーションを持っています。依存関係注入のオーバーヘッドはどのような角度ですか?

約200のフォームコントロールコンポーネントにChangeDetectorRefインスタンスを挿入するだけで、かなりのオーバーヘッドがありますか?

変更検出基準用法:

https://angular.io/api/core/ChangeDetectorRef

+0

あなたはそれらと何をするつもりですか? –

+0

私はdetectChanges()を手動で呼び出します。なぜなら、それらの一部を再レイアウトしたいからです。そして、ChangeDetectionStrategyがOnPushに設定されています。 – ktsangop

答えて

3

コンポーネントビューのオブジェクトの周り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); 
} 

は、基礎となるViewオブジェクトの詳細については、これらの記事を読む:

+0

素晴らしいリソースbtw、ありがとう.. – ktsangop

+0

@ktsangop、ありがとう、もっと多くのものが来ている:) –

関連する問題