Ich erstelle eine Komponente mit Vue.js .
Wenn ich this
in einem der Lebenszyklus-Hooks referenziere ( created
, mounted
, updated
, usw.) wird als undefined
ausgewertet:
Das Gleiche passiert auch in meinen berechneten Eigenschaften:
%Vor%Ich erhalte den folgenden Fehler:
Uncaught TypeError: Kann Eigenschaft 'bar' von undefined
nicht lesen
Warum bewertet this
in diesen Fällen auf undefined
?
Beide Beispiele verwenden eine Pfeilfunktion () => { }
, die this
an einen anderen Kontext als die Vue-Instanz bindet.
Gemäß der Dokumentation :
Verwenden Sie keine Pfeilfunktionen für eine Exemplareigenschaft oder einen Rückruf (z. B.
vm.$watch('a', newVal => this.myMethod())
). Da Pfeilfunktionen an den übergeordneten Kontext gebunden sind, istthis
nicht wie erwartet die Vue-Instanz undthis.myMethod
ist nicht definiert.
Um den richtigen Verweis auf this
als Vue-Instanz zu erhalten, verwenden Sie eine reguläre Funktion:
Alternativ können Sie auch die ECMAScript 5-Kurzschrift verwenden eine Funktion:
%Vor%Tags und Links javascript vue.js vuejs2 this