


So wenden Sie Lazy Loading von asynchronen Vue3-Vite-Komponenten und Routing an
1. Vorwort
1-1. Drei Änderungen:
Änderungen in der Deklarationsmethode für asynchrone Komponenten: Vue 3.x fügt eine neue Hilfsfunktion defineAsyncComponent hinzu, um die Deklaration asynchroner Komponenten anzuzeigen Die Komponentenoption in der Methode wird in Loader umbenannt. Die vom Loader gebundene Komponentenladefunktion empfängt keine Auflösungs- und Ablehnungsparameter mehr und muss ein Promise zurückgeben. 1-2 Der Grund für die Einführung der Hilfsfunktion defineAsyncComponent :
Da nun in Vue 3 funktionale Komponenten als reine Funktionen definiert sind, muss die asynchrone Komponentendefinition explizit definiert werden, indem sie in einen neuen defineAsyncComponent-Helfer eingeschlossen wird. 2. Vergleich von Vue 2.x- und Vue 3.x-Definitionen
2-1. Vergleich von asynchronen Komponenten-/Routing-Definitionen- 2-1-1. In Vue 2.x wird nur eine asynchrone Komponente deklariert erfordert So:
const asyncPage = () => import('./views/home.vue')
2-1-2 In Vue 3.x muss der Import asynchroner Komponenten explizit mit der Hilfsfunktion defineAsyncComponent deklariert werden. Wie folgt:
<template> <div> <h2>Async Components</h2> <p>异步组件测试</p> <child /> </div> </template> <script> import { defineAsyncComponent } from 'vue' const child = defineAsyncComponent(() => import('@/components/async-component-child.vue')) export default { name: 'async-components', components:{ 'child': child } }; </script>
- 2-2. Vergleich der Deklarationsmethoden
- 2-2-1. Die Deklaration asynchroner Komponenten in Vue 2.x verfügt über eine erweiterte Deklarationsmethode. Wie folgt:
const asyncPageWithOptions = { component: () => import('./views/home.vue'), delay: 200, timeout: 3000, error: ErrorComponent, loading: LoadingComponent }
Nach dem Login kopierenDie folgende asynchrone Komponentendeklaration:
const asyncPage = () => import('./views/home.vue')
Nach dem Login kopierenNach dem Login kopieren entspricht also:
const asyncPageWithOptions = { component: () => import('./views/home.vue') }
- 2-2-2. Asynchrone Komponenten können in Vue 3.x auch so deklariert werden. Lediglich die Komponente muss auf Loader umgestellt werden. Wie folgt:
const asyncPageWithOptions = defineAsyncComponent({ loader: () => import('./views/home.vue'), delay: 200, timeout: 3000, error: ErrorComponent, loading: LoadingComponent })
Nach dem Login kopieren2-3. Die asynchrone Komponentenladefunktion gibt den Vergleich zurück
2-3-1. Erhalten Sie Auflösung und Ablehnung in Vue 2.x:
// 2.x version const oldAsyncComponent = (resolve, reject) => { /* ... */ }
Nach dem Login kopieren2-3-2 .In Vue 3.x immer Promise zurückgeben:
// 3.x version const asyncComponent = defineAsyncComponent( () => new Promise((resolve, reject) => { /* ... */ }) )
- Die asynchrone Komponentenladefunktion von Vue 3.x empfängt keine Auflösung und Ablehnung mehr und muss immer Promise zurückgeben. Mit anderen Worten: In Vue 3.x wird der Empfang von Auflösungsrückrufen über Factory-Funktionen zum Definieren asynchroner Komponenten nicht mehr unterstützt.
// 在 Vue 3.x 中不适用 export default { components: { asyncPage: resolve => require(['@/components/list.vue'], resolve) }, }
Nach dem Login kopieren3. Vue3-Übungen
Tipps: Wenn Sie das Vite-Tool zum Erstellen des Projekts verwenden, verwenden Sie Import für Routing und Lazy Loading während der lokalen Entwicklung, es wird jedoch eine Warnung angezeigt, wenn es in die Produktion gepackt wird Umgebung wird ein Fehler gemeldet und die Seite wird nicht normal angezeigt. Dies kann mit den folgenden zwei Methoden erreicht werden.
- 3-1. Routing-Lazy-Loading-Implementierung
- 3-1-1.defineAsyncComponent-Methode
// router/index.js import { defineAsyncComponent } from 'vue' const _import = (path) => defineAsyncComponent(() => import(`../views/${path}.vue`)); const routes = [ { path: '/async-component', name: 'asyncComponent', component: _import('home'), } ];
3-1-2.import.meta.glob-Methode
// 1.上面的方法相当于一次性加载了 views 目录下的所有.vue文件,返回一个对象 const modules = import.meta.glob('../views/*/*.vue'); const modules ={ "../views/about/index.vue": () => import("./src/views/about/index.vue") } // 2.动态导入的时候直接,引用 const router = createRouter({ history: createWebHistory(), routes: [ // ... { path: 'xxxx', name: 'xxxxx', // 原来的方式,这个在开发中可行,但是生产中不行 // component: () => import(`../views${menu.file}`), // 改成下面这样 component: modules[`../views${filename}`] } // ... ], })
- 3-2. Asynchrone Komponentenimplementierung
<template> <div> <h2>Async Components</h2> <p>异步组件测试</p> <child></child> </div> </template> <script> import { defineAsyncComponent } from 'vue' const child = defineAsyncComponent(() => import('@/components/async-component-child.vue')) export default { name: 'async-components', components:{ 'child': child } }; </script>
Nach dem Login kopierenDas obige ist der detaillierte Inhalt vonSo wenden Sie Lazy Loading von asynchronen Vue3-Vite-Komponenten und Routing an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Vue3+TS+Vite-Entwicklungsfähigkeiten: So führen Sie eine SEO-Optimierung durch SEO (SearchEngineOptimization) bezieht sich auf die Optimierung der Struktur, des Inhalts und der Schlüsselwörter der Website, um sie in Suchmaschinen höher zu platzieren und dadurch den Traffic und die Präsenz der Website zu erhöhen. Bei der Entwicklung moderner Frontend-Technologien wie Vue3+TS+Vite ist die Optimierung von SEO ein sehr wichtiges Thema. In diesem Artikel werden einige hilfreiche Vue3+TS+Vite-Entwicklungstechniken und -methoden vorgestellt

vue3+vite:src verwendet „require“, um Bilder dynamisch zu importieren, und vue3+vite importiert dynamisch mehrere Bilder. Wenn Sie „requireisnotdefined“ verwenden, wird eine Fehlermeldung angezeigt like vue2 like imgUrl:require(' .../assets/test.png') wird importiert, da Typescript Require nicht unterstützt, daher wird Import verwendet. So lösen Sie das Problem: Verwenden Sieawaitimport

Um eine teilweise Aktualisierung der Seite zu erreichen, müssen wir nur das erneute Rendern der lokalen Komponente (dom) implementieren. In Vue lässt sich dieser Effekt am einfachsten mit der v-if-Direktive erzielen. In Vue2 können wir zusätzlich zur Verwendung der v-if-Anweisung zum erneuten Rendern des lokalen Doms auch eine neue leere Komponente erstellen. Wenn wir die lokale Seite aktualisieren müssen, springen wir zu dieser leeren Komponentenseite und springen dann wieder hinein der beforeRouteEnter-Schutz in der leeren Komponente. Wie in der Abbildung unten gezeigt, wie man in Vue3.X auf die Schaltfläche „Aktualisieren“ klickt, um das DOM im roten Feld neu zu laden und den entsprechenden Ladestatus anzuzeigen. Da der Guard in der Komponente in der scriptsetup-Syntax in Vue3.X nur o hat

Vue3+TS+Vite-Entwicklungsfähigkeiten: So führen Sie den Front-End-Sicherheitsschutz durch. Mit der kontinuierlichen Weiterentwicklung der Front-End-Technologie beginnen immer mehr Unternehmen und Einzelpersonen, Vue3+TS+Vite für die Front-End-Entwicklung zu verwenden. Allerdings haben auch die damit verbundenen Sicherheitsrisiken die Aufmerksamkeit der Menschen auf sich gezogen. In diesem Artikel besprechen wir einige häufige Front-End-Sicherheitsprobleme und geben einige Tipps zum Schutz der Front-End-Sicherheit während des Entwicklungsprozesses von Vue3+TS+Vite. Eingabevalidierung Benutzereingaben sind oft eine der Hauptquellen für Front-End-Sicherheitslücken. existieren

Vue3+TS+Vite-Entwicklungsfähigkeiten: So optimieren Sie domänenübergreifende Anfragen und Netzwerkanfragen Einführung: In der Front-End-Entwicklung sind Netzwerkanfragen ein sehr häufiger Vorgang. Wie wir Netzwerkanfragen optimieren können, um die Seitenladegeschwindigkeit und das Benutzererlebnis zu verbessern, ist eines der Themen, über die unsere Entwickler nachdenken müssen. Gleichzeitig müssen wir in einigen Szenarien, in denen Anforderungen an verschiedene Domänennamen gesendet werden müssen, domänenübergreifende Probleme lösen. In diesem Artikel wird vorgestellt, wie Sie in der Vue3+TS+Vite-Entwicklungsumgebung domänenübergreifende Anforderungen und Techniken zur Optimierung von Netzwerkanforderungen stellen. 1. Lösung für domänenübergreifende Anfragen

Um das Blog-Frontend mit Vue zu implementieren, müssen Sie die Markdown-Analyse implementieren. Wenn Code vorhanden ist, müssen Sie die Code-Hervorhebung implementieren. Es gibt viele Markdown-Parsing-Bibliotheken für Vue, wie z. B. markdown-it, vue-markdown-loader, markiert, vue-markdown usw. Diese Bibliotheken sind alle sehr ähnlich. Hier wird Markiert verwendet, und highlights.js wird als Code-Hervorhebungsbibliothek verwendet. Die spezifischen Implementierungsschritte lauten wie folgt: 1. Installieren Sie abhängige Bibliotheken. Öffnen Sie das Befehlsfenster unter dem Vue-Projekt und geben Sie den folgenden Befehl ein: npminstallmarked-save//marked, um Markdown in htmlnpmins zu konvertieren

Vue3+TS+Vite-Entwicklungstipps: So verschlüsseln und speichern Sie Daten Mit der rasanten Entwicklung der Internettechnologie werden Datensicherheit und Datenschutz immer wichtiger. In der Vue3+TS+Vite-Entwicklungsumgebung ist die Verschlüsselung und Speicherung von Daten ein Problem, mit dem sich jeder Entwickler auseinandersetzen muss. In diesem Artikel werden einige gängige Techniken zur Datenverschlüsselung und -speicherung vorgestellt, um Entwicklern dabei zu helfen, die Anwendungssicherheit und das Benutzererlebnis zu verbessern. 1. Datenverschlüsselung Front-End-Datenverschlüsselung Die Front-End-Verschlüsselung ist ein wichtiger Bestandteil des Schutzes der Datensicherheit. Häufig verwendet

vue3+ts+axios+pinia realisiert sinnlose Aktualisierung 1. Laden Sie zuerst aiXos und pinianpmipinia im Projekt herunter--savenpminstallaxios--save2. AxiosResponse}from"axios";importaxiosfrom'axios';import{ElMess
