Deve usar ChangeDetectionStrategy.OnPush para tudo?
Como o título diz: Estou trabalhando em um projeto muito grande e em alguns componentes que useiChangeDetectionStrategy.OnPush
para evitar más performances. Fiquei me perguntando, é "bom" colocar em cada componente essa estratégia e, no caso, usarChangeDetectionRef.detectChanges()
para atualizar programaticamente o componente quando necessári
-
Esse é um pequeno componente que tenho no aplicativo:
<my-map
(updatedGeometry)="setUpdatedGeometry($event)"
[startGraphEdit]="elementToEdit" [startCut]="elementToCut"
[startCopy]="elementToCopy"
[updateGraph]="elementToUpdate"
[showElement]="elementToShow"
(selectedProfile)="setProfile($event)"
[reducedChange]="reducedChange"
(reduceComposer)="setReducedComposer($event)"
[labelsVisible]="labelsVisible"
(visibleComposer)="setVisibleComposer($event)"
[activateLayers]="activeLayers"
(curLayers)="setCurrentLayers($event)"
[loadExtent]="extentToLoad"
(extent)="setExtent($event)"
[updateZoom]="newZoom"
(curZoom)="setCurrentZoom($event)"
(curLon)="setCurrentLon($event)"
(curLat)="setCurrentLat($event)"
(poiNotesOffset)="setPoiNotesOffset($event)"
[cancelPoiNoteCreation]="visibleDetailPanel"
(poiNoteUpdatedPosition)="setPoiNoteUpdatedPosition($event)"
[updatePoiNotePosition]="poiNotesElementForUpdate"
[removePoiNoteElement]="poiNotesElementForDeletion"
[updatePoiNotes]="updatePoiNotes"
[projectCode]="prjCode"
(poiNote)="poiNote($event)"
[setPrecisionPointerValues]="precisionPointerValues"
(precisionPointerValues)="updatePrecisionPointer($event)"
(exploreToolArea)="setExploreToolArea($event)"
(extentArea)="setExtentArea($event)"
[exploreToolRadius]="exploreToolRadius"
(newExploreToolRadius)="setExploreToolRadius($event)"
[currEnvironment]="currEnvironment"
(elementSelected)="onElementClick($event)"
[setaClasses]="classes"
[height]="mapHeight"
[width]="mapWidth"
[offsetX]="mapOffsetX"
[offsetY]="mapOffsetY"
[geometriesToHighlight]="geometriesToHighlight"
[highlightLineElements]="lineElements"
(poiList)="setPoiList($event)">
</my-map>
o componente possui muitas entradas e saídas e também se comunica com outros componentes usandoSubjects
eBehaviorSubjects
.