2016-12-07 1 views
0

In meinem Projekt haben einige der Komponenten-Lebenszyklus-Hook-Methoden nicht this._super(...arguments) wie didReceiveAttrs, didUpdateAttrs, didRender, didInsertElement und willDestroyElement. aber ich hatte kein Problem. Soll ich mich ändern oder nicht?Ember-Komponente Lebenszyklus-Hook-Methode - Ist es zwingend erforderlich, Super zu nennen?

Ich weiß, wenn wir init für eine Framework-Klasse wie Ember.Component überschreiben, achten Sie darauf, this._super(...arguments) in unserer Init-Deklaration aufzurufen! Wenn wir das nicht tun, hat Ember möglicherweise keine Möglichkeit, wichtige Setup-Arbeiten auszuführen, und wir werden seltsames Verhalten in Ihrer Anwendung feststellen. (ref)

+3

ändern und schließt es sollte die Haken Verhalten in der Zukunft geändert werden Sie zurück gehen müssen werden und sich hinzufügen. –

Antwort

5

Es ist nicht zwingend this._superimmer für jeden einzelnen Lebenszyklus Haken zu nennen. Manchmal jedoch brauchen Sie es und manchmal nicht. Fehler, die durch das Fehlen des Aufrufs _super verursacht werden, wenn es tatsächlich erforderlich war, führen zu Fehlern, die normalerweise schwer zu erkennen sind. Daher lautet die Empfehlung, es immer so zu nennen, dass es sicher bleibt. Wenn du es nennst und es nicht gebraucht wird, wird es nichts tun, also verlierst du nichts dafür.

Ich denke, es ist eine zusätzliche Zeile Code, aber es hat wirklich keinen Nachteil, außer den 5 Sekunden, die Sie brauchen, um es einzugeben.

Für ein ähnliches Gespräch sehen: Deprecate the usage of Ember.on for Component's lifecycle events.

Verwandte Themen