Heim > Web-Frontend > View.js > TypeError: Die Eigenschaft „$XXX' von undefiniert in Vue kann nicht gelesen werden. Wie gehe ich damit um?

TypeError: Die Eigenschaft „$XXX' von undefiniert in Vue kann nicht gelesen werden. Wie gehe ich damit um?

WBOY
Freigeben: 2023-11-25 12:14:29
Original
878 Leute haben es durchsucht

Vue中的TypeError: Cannot read property '$XXX' of undefined,应该如何处理?

Wenn bei der Entwicklung mit Vue.js häufig die Fehlermeldung „TypeError: Eigenschaft ‚$XXX‘ von undefiniert kann nicht gelesen werden“ auftritt, wie sollten Sie damit umgehen? In diesem Artikel werden die Ursachen dieses Fehlers und seine Behebung erläutert.

  1. Ursache des Problems

Bei der Verwendung von Vue.js verwenden wir dies häufig, um die Methode der Vue-Komponente aufzurufen, z. B.:

export default {
    data() {
        return {};
    },
    methods: {
        handleClick() {
            // do something
        },
    },
};
Nach dem Login kopieren

Die Methode handleClick() ist hier eine Methode der Vue-Komponente. Wenn wir diese Methode in einer Komponente aufrufen, verwenden wir normalerweise die folgende Methode:

<template>
    <button @click="handleClick">Click me</button>
</template>

<script>
    export default {
        data() {
            return {};
        },
        methods: {
            handleClick() {
                // do something
            },
        },
    };
</script>
Nach dem Login kopieren

Bei Verwendung der Methode der Vue-Komponente kann es jedoch leicht zu einer Fehlermeldung kommen, nämlich „TypeError: Cannot read property ‚$XXX‘ of nicht definiert".

Dieser Fehler wird normalerweise dadurch verursacht, dass wir beim Aufruf der Methode der Vue-Komponente den Zeiger verloren haben. Wir wissen, dass dies innerhalb einer Vue-Komponente das aktuelle Vue-Komponentenobjekt darstellt. In einigen Fällen geht jedoch der Zeiger darauf verloren, was dazu führt, dass beim Aufruf der Komponentenmethode die Fehlermeldung „TypeError: Cannot read property '$XXX' of undefined“ erscheint.

  1. Lösung

In Vue.js gibt es viele Möglichkeiten, den Fehler „TypeError: Eigenschaft '$XXX' von undefiniert kann nicht gelesen werden“ zu beheben. Im Folgenden stellen wir hauptsächlich die folgenden drei Lösungen vor.

2.1 Pfeilfunktionen verwenden

Die Pfeilfunktion in ES6 kann das Problem dieses Zeigens vermeiden, da dies innerhalb der Pfeilfunktion auf das Objekt zeigt, in dem es definiert ist, und nicht auf das Objekt, in dem es verwendet wird. Daher können wir Pfeilfunktionen verwenden, um Komponentenmethoden zu definieren, sodass wir das Problem dieses Zeigens vermeiden können.

export default {
    data() {
        return {};
    },
    methods: {
        handleClick: () => {
            // do something
        },
    },
};
Nach dem Login kopieren

2.2 Verwenden Sie bind, um dies zu binden

Die Bindungsmethode in JavaScript kann diesen Punkt der Funktion ändern. Wir können dies an die Komponentenmethode innerhalb der Komponente binden, um das Problem dieses Zeigens zu vermeiden.

export default {
    data() {
        return {};
    },
    methods: {
        handleClick() {
            // do something
        },
    },
    mounted() {
        const handleClick = this.handleClick.bind(this);
        document.body.addEventListener('click', handleClick);
    },
};
Nach dem Login kopieren

2.3 Verwendung von vue-class-component

vue-class-component ist eine Bibliothek zum Schreiben von Vue-Komponenten basierend auf der Klassen-API. Sie ermöglicht es uns, Komponenten klarer zu definieren und gleichzeitig einige dadurch aufgezeigte Probleme zu vermeiden.

import Vue from 'vue';
import Component from 'vue-class-component';

@Component
export default class App extends Vue {
    handleClick() {
        // do something
    }
}
Nach dem Login kopieren

Natürlich erfordert die Verwendung der Vue-Class-Component-Bibliothek mehr Lernkosten. Daher können wir für einige einfache kleine Projekte die ersten beiden Methoden verwenden, um den Fehler „TypeError: Die Eigenschaft ‚$XXX‘ von undefiniert kann nicht gelesen werden“ zu beheben .

  1. Zusammenfassung

In der Vue.js-Entwicklung ist der Fehler „TypeError: Eigenschaft ‚$XXX‘ von undefiniert kann nicht gelesen werden“ ein relativ häufiger Fehler. Dieser Fehler wird normalerweise durch ein Problem verursacht, auf das hier hingewiesen wird. Um dieses Problem zu vermeiden, können wir es mit der Pfeilfunktion von ES6, der Bind-Methode von JavaScript und der Vue-Class-Component-Bibliothek lösen. Mit diesen Methoden können wir dieses Problem effektiv beobachten und lösen und so die Entwicklung unserer Vue.js reibungsloser gestalten.

Das obige ist der detaillierte Inhalt vonTypeError: Die Eigenschaft „$XXX' von undefiniert in Vue kann nicht gelesen werden. Wie gehe ich damit um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage