Change detection is Angular's process to check for updates in component data and update the view accordingly.
Click to reveal answer
beginner
How can frequent change detection cycles affect app performance?
Frequent cycles can slow down the app because Angular checks many components repeatedly, using more CPU and memory.
Click to reveal answer
intermediate
What is the default change detection strategy in Angular?
The default is the "Default" strategy, also known as "CheckAlways", where Angular checks the component and all its children every time change detection runs.
Click to reveal answer
intermediate
How does the OnPush change detection strategy improve performance?
OnPush tells Angular to check a component only when its input properties change or an event happens inside it, reducing unnecessary checks.
Click to reveal answer
intermediate
Name one way to reduce the performance impact of change detection in Angular.
Use the OnPush strategy, detach change detector manually, or limit heavy computations inside templates.
Click to reveal answer
What happens during Angular's change detection?
AAngular checks component data and updates the view if needed.
BAngular compiles TypeScript to JavaScript.
CAngular loads external CSS files.
DAngular sends data to the server.
✗ Incorrect
Change detection means Angular looks for data changes to update the UI.
Which change detection strategy checks components only when inputs change?
ADefault (CheckAlways)
BDetached
COnPush
DManual
✗ Incorrect
OnPush reduces checks by only running when inputs or events inside the component change.
What is a negative effect of too many change detection cycles?
AFaster app loading
BSlower app performance
CMore secure app
DBetter SEO
✗ Incorrect
Too many cycles use more CPU and slow down the app.
How can you manually improve change detection performance?
ADetach the change detector
BAdd more components
CUse inline styles
DDisable JavaScript
✗ Incorrect
Detaching stops Angular from checking that component until reattached.
Which of these is NOT a way to reduce change detection impact?
AUse OnPush strategy
BLimit heavy computations in templates
CDetach change detector manually
DRun change detection more often
✗ Incorrect
Running change detection more often increases performance cost.
Explain how Angular's change detection affects app performance and ways to optimize it.
Think about when Angular updates the screen and how to reduce unnecessary work.
You got /5 concepts.
Describe the difference between the default and OnPush change detection strategies in Angular.
Compare how often Angular looks for changes in each strategy.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of Angular's change detection?
easy
A. To manage routing between pages
B. To compile TypeScript code
C. To handle user authentication
D. To update the view when data changes
Solution
Step 1: Understand change detection role
Change detection in Angular watches for data changes to update the screen accordingly.
Step 2: Identify the correct purpose
Updating the view when data changes matches the role of change detection.
Final Answer:
To update the view when data changes -> Option D
Quick Check:
Change detection updates view [OK]
Hint: Change detection updates the screen on data change [OK]
Common Mistakes:
Confusing change detection with routing
Thinking it compiles code
Mixing it with authentication
2. Which syntax correctly sets the change detection strategy to OnPush in an Angular component?
easy
A. @Component({ detectionStrategy: OnPush })
B. @Component({ changeDetection: ChangeDetectionStrategy.Default })
C. @Component({ changeDetection: ChangeDetectionStrategy.OnPush })
D. @Component({ changeDetectionStrategy: 'OnPush' })
Solution
Step 1: Recall correct property name
The property to set change detection is 'changeDetection' inside @Component decorator.
Step 2: Use correct enum value
The enum value for OnPush is ChangeDetectionStrategy.OnPush, not a string or other property name.
Final Answer:
@Component({ changeDetection: ChangeDetectionStrategy.OnPush }) -> Option C
Quick Check:
Use changeDetection with ChangeDetectionStrategy.OnPush [OK]
Hint: Use changeDetection: ChangeDetectionStrategy.OnPush exactly [OK]
Common Mistakes:
Using wrong property name like detectionStrategy
Passing 'OnPush' as string
Confusing Default with OnPush
3. Given this Angular component with OnPush strategy:
What happens if the parent updates counter by setting the same number value again?
medium
A. The component view updates because input changed
B. The component view does not update because value is unchanged
C. Angular throws an error due to OnPush
D. The component view updates only after manual detectChanges call
Solution
Step 1: Understand OnPush behavior with inputs
OnPush triggers change detection only if input references change or events occur.
Step 2: Same primitive value means no change
Setting the same number value again does not change the input reference or value.
Final Answer:
The component view does not update because value is unchanged -> Option B
Quick Check:
OnPush skips unchanged input values [OK]
Hint: OnPush skips updates if input value unchanged [OK]
Common Mistakes:
Assuming view always updates on input set
Thinking OnPush causes errors
Believing manual detectChanges is always needed
4. You have an Angular component using Default change detection. The component updates slowly. Which fix improves performance?
medium
A. Switch to OnPush change detection strategy
B. Remove all @Input properties
C. Use setTimeout to delay updates
D. Disable change detection entirely
Solution
Step 1: Identify performance issue cause
Default strategy checks all components frequently, which can slow large apps.
Step 2: Apply OnPush to reduce checks
OnPush limits checks to when inputs change or events happen, improving speed.
Final Answer:
Switch to OnPush change detection strategy -> Option A
Quick Check:
OnPush improves performance by fewer checks [OK]
Hint: Use OnPush to reduce unnecessary checks [OK]
Common Mistakes:
Removing inputs breaks data flow
Using setTimeout doesn't fix detection speed
Disabling detection breaks UI updates
5. In a large Angular app, you want to optimize change detection. You have a parent component with Default strategy and a child with OnPush. The parent updates a complex object property but mutates it instead of replacing it. What is the impact on the child component's view update?
hard
A. Child view does not update because OnPush checks object reference
B. Child view updates because parent changed object property
C. Child view updates only if detectChanges is called manually
D. Child view updates automatically regardless of mutation
Solution
Step 1: Understand OnPush and object mutation
OnPush triggers on input reference changes, not internal mutations.
Step 2: Mutation keeps same object reference
Mutating object property does not change the reference, so OnPush skips update.
Step 3: Child view remains unchanged without manual trigger
Without new reference or manual detection, child view won't update.
Final Answer:
Child view does not update because OnPush checks object reference -> Option A
Quick Check:
OnPush needs new object reference to update [OK]
Hint: OnPush tracks object references, not internal mutations [OK]
Common Mistakes:
Assuming mutation triggers update
Thinking child updates automatically
Forgetting manual detectChanges option
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.