2017-11-23 13 views
0

角度のChange Detectionに関するいくつかの良い記事を読んだことがあり、それが何で、どのように機能しているかを幾分理解しています。しかし、これまでに読んだ記事はすべて、Change Detectionに焦点を当てています。コンポーネントで何らかのイベントが発生したとき、またはinputプロパティが変更されたときなどです。routeが変更されたときに何が起こるかに焦点を当てた記事はまだ見つかりませんでしたか?どのようにChange Detectionそのシナリオで動作しますか?また、AngularはすべてのHTML/DOMアップデートを一度にブラウザにプッシュしますか、DOMアップデートが見つかるとすぐにブラウザに常にフィードを送り続けますか?ルート変更時の角度変化の検出

答えて

2

ルーティングは変更検出をトリガーしません。ルータNgZoneによって一旦遮られるなど、いくつかのイベントのUIまたは他の(のsetTimeout、XHR)によってナビゲートされる

@Directive({selector: 'router-outlet', exportAs: 'outlet'}) 
export class RouterOutlet implements OnDestroy, OnInit { 
    ... 
    activateWith(activatedRoute: ActivatedRoute, resolver: ComponentFactoryResolver|null) { 
     ... 
     // Calling `markForCheck` to make sure we will run the change detection when the 
     // `RouterOutlet` is inside a `ChangeDetectionStrategy.OnPush` component. 
     this.changeDetector.markForCheck(); 
     this.activateEvents.emit(this.activated.instance); 
    } 

:それが検出、特定の変更するためないことが唯一のものは、活性化されているルータ出口成分marking for checkありますコードはで変化検出処理キックの実行を終了。また

、角度がブラウザ に、一度にすべてのHTML/DOMの更新をプッシュするか、それがどの DOMの更新を見つけると、それは常に、すぐにブラウザを送り続けるんですか?

DOM要素を要素ごとに更新します。要素ごとに進行します。物事をコメントして説明するための

+0

ありがとう:変化検出の最も包括的な説明についてで述べたすべての記事をお読みください。私はいつもあなたの記事を読んで楽しんできましたが、記事のほとんどを読んでいましたが、別の観点から読んでいます。ありがとう。 –

+1

@ImranLatif、うれしいことがわかった。それが助けられたら、私の答えを受け入れたものとしてマークすることもできます。がんばろう! –

関連する問題