libs/upp-wdgt/src/injectables/renderer.ts
Service that optimizes change detection calls by ensuring that detectChanges()
is only executed once per execution cycle, even if update() is called multiple times.
This service is useful for preventing unnecessary re-rendering of Angular components, improving performance and efficiency.
Example :// Providing ViewRenderer in a Component
import { Component, ChangeDetectorRef } from '@angular/core';
import { ViewRenderer } from '../services/view-renderer.service'; selector: 'app-example',
template: <button (click)="increment()">Increment</button><p>{{ counter }}</p>,
providers: [
{
provide: ViewRenderer,
useFactory: (cdRef: ChangeDetectorRef) => new ViewRenderer(cdRef),
deps: [ChangeDetectorRef]
}
]
})
export class ExampleComponent {
counter = 0;
constructor(private renderer: ViewRenderer) {} // Inject ViewRenderer with ChangeDetectorRef
increment() {
for (let i = 0; i < 10; i++) {
this.counter++;
this.renderer.markForCheck(); // detectChanges() will only be called once per cycle
}
}
}
Methods |
Accessors |
constructor(change: ChangeDetectorRef)
|
||||||||
|
Constructs the
Parameters :
|
| markForCheck | ||||||
markForCheck(force)
|
||||||
|
Schedules a change detection cycle. If called multiple times in the same execution cycle,
it ensures that This method improves performance by avoiding redundant calls to
Parameters :
Returns :
void
|