1

Ich entwickle eine Angular 2 App mit ngrx und ich war interessiert an OnPush Change Detection, um bessere Leistung zu erzielen. Ich habe mehrere Artikel darüber gelesen, die besagten: "Wenn eine Komponente nur von ihren Eingabeeigenschaften abhängt und sie unveränderlich sind, dann kann sich diese Komponente genau dann ändern, wenn sich eine ihrer Eingabeeigenschaften ändert.". Daher habe ich zwei (einfache) Fragen zu OnPush:OnPush Change Detection für spezielle Fälle

1) Wenn meine Komponente eine Mischung aus @Input() - Eigenschaften und keine Eingabeeigenschaften hat, ist OnPush nutzlos?

2) Gleiche Frage für eine Komponente, die nur Eigenschaften hat (nein @Input).

Dank durch Voraus :)

Antwort

1

OnPush beeinflussen Komponenten nicht internen Zustand.

Wenn man sich diese excellent post von Victor Savkin aussehen, er erwähnt ausdrücklich

Es ist erwähnenswert, dass eine Komponente noch privaten wandelbar Zustand so lange haben, wie es nur aufgrund Eingänge ändert aktualisiert oder Ereignis ausgelöst von innerhalb der Vorlage der Komponente. Das einzige, was die OnPush-Strategie nicht zulässt, hängt vom freigegebenen veränderbaren Zustand ab. Lesen Sie hier mehr darüber.

Es lohnt sich, Zeit mit diesem Beitrag zu verbringen, sowie mit dem Post, auf den er sich bezieht.

+1

Sie können auch 'ChangeDetectorRef.detectChanges()' oder 'ChangeDetectorRef.markForCheck()' aufrufen, um die Änderungserkennung aufzurufen, nachdem der Code den Status geändert hat. –

+0

Großartig, danke Alter! :) –

+0

@ GünterZöchbauer Ich verstehe sowas nicht. Wenn meine Komponente keine Eingabeeigenschaften hat, ist OnPush nutzlos, oder? –

Verwandte Themen