Heim >Web-Frontend >js-Tutorial >Warum funktionieren Pfeilfunktionen in Vue-berechneten Eigenschaften nicht wie erwartet?

Warum funktionieren Pfeilfunktionen in Vue-berechneten Eigenschaften nicht wie erwartet?

Susan Sarandon
Susan SarandonOriginal
2024-11-24 20:47:31910Durchsuche

Why Don't Arrow Functions Work as Expected in Vue Computed Properties?

Pfeilfunktionen in von Vue berechneten Eigenschaften

Problem:

Verwendung von Pfeilfunktionen in von Vue berechneten Eigenschaften Eigenschaften können zu unerwartetem Verhalten führen. Nach dem Ändern der Methoden in einer berechneten Eigenschaft in Pfeilfunktionen ändern sich die Farben der DOM-Elemente nicht, auch wenn die zugrunde liegenden Datenwerte weiterhin erfolgreich umgeschaltet werden.

Antwort:

Dieses Problem entsteht, weil Pfeilfunktionen dies nicht an die Vue-Instanz binden, in der die berechnete Eigenschaft definiert ist. Dieses Verhalten stimmt mit anderen Kontexten überein, in denen Pfeilfunktionen verwendet werden, beispielsweise in Instanzmethoden.

Gemäß der Vue-Dokumentation:

„Verwenden Sie keine Pfeilfunktionen für eine Instanzeigenschaft oder einen Instanzrückruf.“ (z. B. vm.$watch('a', newVal => this.myMethod())) Da Pfeilfunktionen an den übergeordneten Kontext gebunden sind, ist dies nicht die Vue-Instanz, wie Sie es tun würden „expect“ und „this.myMethod()“ werden undefiniert sein. Verwenden Sie stattdessen die herkömmliche Funktionssyntax (z. B. function() { ... }), um diese korrekt an die Vue-Instanz zu binden.

Das obige ist der detaillierte Inhalt vonWarum funktionieren Pfeilfunktionen in Vue-berechneten Eigenschaften nicht wie erwartet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn