Heim Web-Frontend View.js So verwenden Sie async/await, um asynchrone Vorgänge in Vue abzuwickeln

So verwenden Sie async/await, um asynchrone Vorgänge in Vue abzuwickeln

Jun 11, 2023 am 09:18 AM
vue async await 异步操作

So verwenden Sie async/await, um asynchrone Vorgänge in Vue abzuwickeln

Mit der kontinuierlichen Weiterentwicklung der Front-End-Entwicklung müssen wir komplexere asynchrone Vorgänge in Vue abwickeln. Obwohl Vue bereits viele praktische Möglichkeiten zur Handhabung asynchroner Vorgänge bietet, müssen wir in einigen Fällen möglicherweise eine einfachere und intuitivere Möglichkeit zur Handhabung dieser asynchronen Vorgänge verwenden. Zu diesem Zeitpunkt ist async/await eine sehr gute Wahl.

Was ist asynchron/warten?

In ES2017 werden „async“ und „await“ zu zwei neuen Schlüsselwörtern. async wird verwendet, um eine Funktion zu ändern, um anzuzeigen, dass es sich bei der Funktion um eine asynchrone Funktion handelt. In einer asynchronen Funktion können wir „await“ verwenden, um auf ein Promise-Objekt zu warten und dann den Wert des Objekts abzurufen.

In Vue verwenden wir normalerweise einige Promise-basierte asynchrone Vorgänge, z. B. das Aufrufen von Schnittstellen zum Abrufen von Daten oder das asynchrone Laden von Bildern usw. Durch die Verwendung von async/await können wir diese asynchronen Vorgänge klarer handhaben.

Wie verwende ich Async/Await?

Die grundlegende Syntax der Verwendung von async/await ist sehr einfach. Wir müssen lediglich eine Funktion als asynchrone Funktion deklarieren und dann mit „await“ auf den Rückgabewert des Promise-Objekts warten, wo wir auf asynchrone Vorgänge warten müssen.

Am Beispiel der Datenerfassung können wir eine asynchrone Funktion getArticleById definieren und dann im Funktionskörper auf den Rückgabewert der http-Anfrage warten:

async function getArticleById(id) {
    const response = await fetch(`/api/articles/${id}`);
    return response.json();
}
Nach dem Login kopieren

In Vue verwenden wir normalerweise Axios, um die Schnittstelle zum Abrufen von Daten aufzurufen . Wir können Axios in eine asynchrone Funktion kapseln und dann async/await in der Vue-Komponente verwenden, um Daten abzurufen.

Nehmen Sie als Beispiel das Abrufen der Blog-Liste. Wir können eine asynchrone Funktion getBlogList:

async function getBlogList() {
    const response = await axios.get('/api/blogs');
    return response.data;
}
Nach dem Login kopieren

definieren. Dann können wir in der Vue-Komponente async/await verwenden, um die Daten abzurufen und die Daten an die Vorlage zu binden:

<template>
    <div>
        <div v-for="blog in blogs" :key="blog.id">{{blog.title}}</div>
    </div>
</template>

<script>
    async function getBlogList() {
        const response = await axios.get('/api/blogs');
        return response.data;
    }

    export default {
        data() {
            return {
                blogs: []
            }
        },
        async mounted() {
            this.blogs = await getBlogList();
        }
    }
</script>
Nach dem Login kopieren

Verwenden Sie async/await, um mehrere asynchrone Vorgänge zu verarbeiten.

In der tatsächlichen Entwicklung stoßen wir normalerweise auf Situationen, in denen mehrere asynchrone Vorgänge gleichzeitig verarbeitet werden müssen. In Vue-Komponenten müssen wir beispielsweise Daten von verschiedenen Schnittstellen abrufen und diese dann verarbeiten oder rendern. Zu diesem Zeitpunkt können wir die Methode Promise.all() verwenden, um darauf zu warten, dass alle asynchronen Vorgänge auf einmal abgeschlossen werden.

Am Beispiel des Abrufens von Artikeln und Kommentaren können wir zwei asynchrone Funktionen getArticle und getComments definieren:

async function getArticle(id) {
    const response = await axios.get(`/api/articles/${id}`);
    return response.data;
}

async function getComments(articleId) {
    const response = await axios.get(`/api/articles/${articleId}/comments`);
    return response.data;
}
Nach dem Login kopieren

Dann können wir diese beiden asynchronen Vorgänge in eine asynchrone Funktion kapseln und Promise.all() verwenden, um auf die beiden zu warten Der Vorgang wird gleichzeitig abgeschlossen:

async function getArticleWithComments(articleId) {
    const [ article, comments ] = await Promise.all([
        getArticle(articleId),
        getComments(articleId)
    ]);
    return {
        article,
        comments
    };
}
Nach dem Login kopieren

In der Vue-Komponente können wir async/await verwenden, um alle Daten abzurufen und die Daten an die Vorlage zu binden:

<template>
    <div>
        <h1>{{article.title}}</h1>
        <p>{{article.content}}</p>
        <ul>
            <li v-for="comment in comments" :key="comment.id">{{comment.content}}</li>
        </ul>
    </div>
</template>

<script>
    async function getArticle(id) {
        const response = await axios.get(`/api/articles/${id}`);
        return response.data;
    }

    async function getComments(articleId) {
        const response = await axios.get(`/api/articles/${articleId}/comments`);
        return response.data;
    }

    async function getArticleWithComments(articleId) {
        const [ article, comments ] = await Promise.all([
            getArticle(articleId),
            getComments(articleId)
        ]);
        return {
            article,
            comments
        };
    }

    export default {
        data() {
            return {
                article: {},
                comments: []
            }
        },
        async mounted() {
            const data = await getArticleWithComments(this.$route.params.articleId);
            this.article = data.article;
            this.comments = data.comments;
        }
    }
</script>
Nach dem Login kopieren

Verwenden Sie try/catch, um Ausnahmen zu behandeln

Bei Verwendung asynchroner Funktionen , wir Sie müssen auch auf die Ausnahmebehandlung achten. Wenn in einer asynchronen Funktion ein Fehler auftritt, können wir die try/catch-Anweisung verwenden, um die Ausnahme abzufangen und entsprechend zu behandeln.

Am Beispiel des Abrufens von Benutzerinformationen können wir eine asynchrone Funktion getUserInfo definieren. Wenn der Benutzer nicht angemeldet ist, wird beim Abrufen der Benutzerinformationen vom Server ein nicht autorisierter Fehler zurückgegeben. Wir können die try/catch-Anweisung verwenden, um den Fehler abzufangen und ihn entsprechend zu behandeln:

async function getUserInfo() {
    try {
        const response = await axios.get('/api/user');
        return response.data;
    } catch (error) {
        if (error.response && error.response.status === 401) {
            // 用户未登录
            return null;
        } else {
            // 其它异常
            throw error;
        }
    }
}
Nach dem Login kopieren

In der Vue-Komponente können wir async/await verwenden, um Benutzerinformationen abzurufen und diese basierend auf dem Rückgabewert entsprechend zu behandeln:

<template>
    <div>
        <div v-if="user">{{user.name}},欢迎回来!</div>
        <div v-else>请先登录</div>
    </div>
</template>

<script>
    async function getUserInfo() {
        try {
            const response = await axios.get('/api/user');
            return response.data;
        } catch (error) {
            if (error.response && error.response.status === 401) {
                // 用户未登录
                return null;
            } else {
                // 其它异常
                throw error;
            }
        }
    }

    export default {
        data() {
            return {
                user: null
            }
        },
        async mounted() {
            this.user = await getUserInfo();
        }
    }
</script>
Nach dem Login kopieren

Summary

Durch die Verwendung von async/await können wir asynchrone Vorgänge in Vue klarer handhaben. Wir können async/await verwenden, um auf den Rückgabewert des Promise-Objekts zu warten, und Promise.all() verwenden, um darauf zu warten, dass mehrere asynchrone Vorgänge gleichzeitig abgeschlossen werden. Gleichzeitig müssen Sie bei der Verwendung asynchroner Funktionen auch auf die Ausnahmebehandlung achten. Sie können Try/Catch-Anweisungen verwenden, um Ausnahmen in asynchronen Vorgängen abzufangen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie async/await, um asynchrone Vorgänge in Vue abzuwickeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verweisen Sie auf die JS -Datei mit Vue.js So verweisen Sie auf die JS -Datei mit Vue.js Apr 07, 2025 pm 11:27 PM

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

So fügen Sie Funktionen zu Schaltflächen für Vue hinzu So fügen Sie Funktionen zu Schaltflächen für Vue hinzu Apr 08, 2025 am 08:51 AM

Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

So verwenden Sie Watch in Vue So verwenden Sie Watch in Vue Apr 07, 2025 pm 11:36 PM

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

So kehren Sie von Vue zur vorherigen Seite zurück So kehren Sie von Vue zur vorherigen Seite zurück Apr 07, 2025 pm 11:30 PM

VUE.JS hat vier Methoden, um zur vorherigen Seite zurückzukehren: $ router.go (-1) $ router.back () verwendet & lt; Router-Link to = & quot;/& quot; Komponentenfenster.history.back () und die Methodenauswahl hängt von der Szene ab.

Vue realisiert Festzelt-/Text -Scrolling -Effekt Vue realisiert Festzelt-/Text -Scrolling -Effekt Apr 07, 2025 pm 10:51 PM

Implementieren Sie Marquee/Text-Scrolling-Effekte in VUE unter Verwendung von CSS-Animationen oder Bibliotheken von Drittanbietern. In diesem Artikel wird die Verwendung von CSS -Animation vorgestellt: Bildlauftext erstellen und Text mit & lt; div & gt;. Definieren Sie CSS -Animationen und setzen Sie Überlauf: Versteckt, Breite und Animation. Definieren Sie Keyframes, setzen Sie Transformation: Translatex () am Anfang und am Ende der Animation. Passen Sie die Animationseigenschaften wie Dauer, Bildlaufgeschwindigkeit und Richtung an.

So fragen Sie die Version von Vue So fragen Sie die Version von Vue Apr 07, 2025 pm 11:24 PM

Sie können die Vue -Version mit Vue Devtools abfragen, um die Registerkarte VUE in der Konsole des Browsers anzuzeigen. Verwenden Sie NPM, um den Befehl "npm list -g vue" auszuführen. Suchen Sie das Vue -Element im Objekt "Abhängigkeiten" der Datei package.json. Führen Sie für Vue -CLI -Projekte den Befehl "Vue --version" aus. Überprüfen Sie die Versionsinformationen im & lt; Skript & gt; Tag in der HTML -Datei, die sich auf die VUE -Datei bezieht.

So verwenden Sie Vue Traversal So verwenden Sie Vue Traversal Apr 07, 2025 pm 11:48 PM

Es gibt drei gängige Methoden für Vue.js, um Arrays und Objekte zu durchqueren: Die V-für-Anweisung wird verwendet, um jedes Element zu durchqueren und Vorlagen zu rendern; Die V-Bind-Anweisung kann mit V-für dynamisch Attributwerte für jedes Element verwendet werden. und die .MAP -Methode kann Array -Elemente in Neuarrays umwandeln.

See all articles