What is change detection? The following article will talk about the change detection mechanism in Angular, and introduce how status changes notify change detection and Angular change detection strategy. I hope it will be helpful to everyone.
detection mechanism
, Used to traverse the component tree, check the changes of each component, and trigger the update of DOM
when the component properties change. [Related tutorial recommendations: "angular tutorial"] status
of the program and make it visible in the user interface ##. This state can be any object, array, or basic data type.
asynchronous operations are the root factors that may cause data changes, so whenever some asynchronous operations are performed, our application The status may change, and at this time you need to update the view
Angular, receive Introduced
NgZone, which listens to all Angular's
asynchronous events. Angular will rewrite (through
Zone.js) some of the underlying browser APIs when it starts. (Violently intercepts all asynchronous events).
ngAfterViewChecked() { console.log('cluster-master.component cd'); }
constructor(private cd: ChangeDetectorRef) { cd.detach() setInterval(() => { this.cd.detectChanges() }, 5000) }
component tree , Angular's change detection can be divided into components. Each component has a corresponding
ChangeDetector. It is conceivable that these change detectors will also form a tree.
In Angular each component has its own change detector, which allows us to control how and when change detection is performed for each component.
change detection will cause component change detection, including
status changes of other components, and
this component Changes in internal attribute values of reference variables
4.1 default
Angular’s default change detection mechanism isChangeDetectionStrategy.Default. After each asynchronous event callback ends, NgZone will trigger
the entire component Tree
Top downDo change detection
4.2 onPush<span style="font-size: 18px;"></span>
skip the change detection of a component and
all sub-components below it
OnPush# is set ## After the strategy, there are still many ways to trigger change detection;
@Input
attribute of the component changes.
2) click, submit, mouse down
.
3) The Async pipe
at the same time.
4) Manually use
this subcomponent and the root component
, notify the angular detector to must
check the components on this path during the next change detection, even if the change detection strategy is set to onPush
detectChanges(): manually initiated
detach(): Remove the component's detector from the number of detectors reattach(): Relink the detached detector
to the detector treeFor more programming related knowledge, please visit :
Programming VideoThe above is the detailed content of What is change detection? Let's talk about angular's change mechanism. For more information, please follow other related articles on the PHP Chinese website!