suchen
HeimWeb-FrontendCSS-TutorialFaule Ladenrouten in Vue mit dynamischen Kommentaren von Webpack

Faule Ladenrouten in Vue mit dynamischen Kommentaren von Webpack

Der JavaScript -Routing -Mechanismus gibt normalerweise an, welches relative URL -Muster welcher Komponentenrendern entspricht. Zum Beispiel sollte der /about Pfad gerendert werden<about></about> Komponenten. In diesem Artikel wird erläutert, wie dies mit einem faulen Laden in Vue/Vue -Router erreicht und so genau wie möglich erledigt wird.

Ein Code -Repository, der all diesen Artikel enthält, finden Sie in GitHub.

Möglicherweise haben Sie Vue Routen (URLs) gesehen:

 Vue aus "Vue" importieren
Importieren Sie Vuerouter aus 'Vue-Router'

Home von '../views/home.vue' importieren '
Importieren von '../views/about.vue' '
Login aus '../views/login.vue' importieren '

Vue.use (vuerouter)

const Routes = [
  {Pfad: '/', Name: 'Home', Komponente: Home},
  {Pfad: '/über', Name: 'About', Komponente: About},
  {Pfad: '/login', Name: 'Login', Komponente: Login}
]

const router = neuer vuerouter ({{
  Routen
})

Standard -Router exportieren

Dieser Code lädt in / Pfad<home></home> Komponente, Laden in /about den Pfad<about></about> Komponente, Laden in /login Pfad<login></login> Komponenten.

Diese Methode zur Codesegmentierung wird jedoch nicht gut erledigt, da alle drei Komponenten zusammen verpackt sind, anstatt bei Bedarf dynamisch zu laden.

Hier ist eine Verbesserung, die dynamische Importanweisungen und Webpack -Chunk -Namen für die Codesegmentierung verwendet:

 const Routes = [
  {
    Weg: '/',
    Name: 'Zuhause',
    Komponente: () => import (/ * webpackChunkname: "home" */'../views/home.vue'))
  },
  {
    Pfad: '/über',
    Name: 'Über',,
    Komponente: () => import (/ * webpackchunkname: "über" */'../views/about.vue'))
  },
  {
    Pfad: '/Login',
    Name: 'Login',
    Komponente: () => Import (/ * WebPackChunkName: "Login" */'../views/login.vue'))
  }
]

Dieser Ansatz ist gut, ohne offensichtliche Nachteile, nur leicht lang und wiederholt. Lassen Sie uns als guter Entwickler etwas Abstraktion durchführen, um es zu verbessern, ein Array zu verwenden und .map -Operationen:

 const rayoptions = [
  {Pfad: '/', Name: 'Home'},
  {Pfad: '/über', Name: 'About'},
  {Pfad: '/login', Name: 'Login'}
]

const Routes = RouteOptions.map (Route => {
  zurückkehren {
    ...Route,
    Komponente: () => import (`@/views/$ {route.name} .vue`)
  }
})

const router = neuer vuerouter ({{
  Routen
})

Jetzt haben wir die Verwendung von component reduziert und stattdessen den Routennamen als Argument für die Importfunktion verwendet.

Aber was ist, wenn wir den Chunk -Namen festlegen wollen?

Soweit ich das beurteilen kann, können Sie in JavaScript keine dynamischen Annotationen verwenden, ohne dass eine Art Build -Schritt. In diesem Fall opfern wir Kommentare (WebPackChunkname), um die Menge des Code -Schreibens zu verringern. Es hängt alles davon ab, welche Methode Sie bevorzugen.

Nur ein Scherz, lass uns dieses Problem lösen.

Ab WebPack 2.6.0 werden Platzhalter [index] und [request] unterstützt, was bedeutet, dass wir den Namen des generierten Chunk so festlegen können:

 // ...

const rayoptions = [
  {Pfad: '/', Name: 'Home'},
  {Pfad: '/über', Name: 'About'},
  {Pfad: '/login', Name: 'Login'}
]

const Routes = RouteOptions.map (Route => {
  zurückkehren {
    ...Route,
    Komponente: () => import (/ * webpackChunkName: "[request]" */`../ views/$ {route.name} .vue`)
  }
})

const router = neuer vuerouter ({{
  Routen
})

sehr gut! Jetzt haben wir alle Funktionen sowie dynamische Laderouten mit den genannten Teilen. Es funktioniert auf Vue 2 und Vue 3. Sie können es überprüfen, indem Sie npm run build im Terminal ausführen:

Wir können jedoch auch noch einen Schritt weiter gehen, indem wir faule Lastrouten in benannte Chunks anstelle von einzelnen Komponenten gruppieren. Zum Beispiel könnten wir einige Gruppen erstellen, die die wichtigsten Komponenten und den Rest in einer anderen "weniger wichtigen" Gruppe zusammenstellen. Wir müssen nur webpackChunkName aktualisieren, um den zuvor verwendeten Platzhalter [request] zu ersetzen:

 const Routes = [
  {
    Weg: "/",
    Name: "Home",
    Komponente: () =>
      import (/ * webpackchunkname: "
  },
  {
    Pfad: "/über",
    Name: "Über",,
    Komponente: () =>
      import (/ * webpackchunkname: "
  },
  {
    Pfad: "/login",
    Name: "Login",
    Komponente: () =>
      import (/ * webpackchunkname: "notomportant" */"../views/login.vue"))
  },
  {
    Pfad: "/Kontakt",
    Name: "Kontakt",
    Komponente: () =>
      import (/ * webpackchunkname: "notomportant" */"../views/contact.vue"))
  }
];

Jetzt sind unsere vier Komponenten in zwei separate Stücke zusammengefasst.

Das war's! Eine Technik für faule Laderouten in Vue und einige Vorschläge, wie man sie zum Bauzeit nennt und gruppiert.

Das obige ist der detaillierte Inhalt vonFaule Ladenrouten in Vue mit dynamischen Kommentaren von Webpack. 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
Ankerpositionierung kümmert sich nur um die QuellenreihenfolgeAnkerpositionierung kümmert sich nur um die QuellenreihenfolgeApr 29, 2025 am 09:37 AM

Die Tatsache, dass die Ankerpositionierung die HTML-Quellenreihenfolge vermeidet, ist so CSS-y, weil sie eine weitere Trennung von Bedenken zwischen Inhalt und Präsentation ist.

Was bedeutet Margin: 40px 100px 120px 80px?Was bedeutet Margin: 40px 100px 120px 80px?Apr 28, 2025 pm 05:31 PM

In Artikel wird die CSS -Margin -Eigenschaft erörtert, insbesondere "Margin: 40px 100px 120px 80px", seine Anwendung und Auswirkungen auf das Webseitenlayout.

Was sind die verschiedenen CSS -Grenzeigenschaften?Was sind die verschiedenen CSS -Grenzeigenschaften?Apr 28, 2025 pm 05:30 PM

In dem Artikel werden die CSS -Grenzeigenschaften erörtert und sich auf Anpassung, Best Practices und Reaktionsfähigkeit konzentriert. Hauptargument: Border-Radius ist für reaktionsschnelle Designs am effektivsten.

Was sind CSS -Hintergründe, listen Sie die Eigenschaften auf?Was sind CSS -Hintergründe, listen Sie die Eigenschaften auf?Apr 28, 2025 pm 05:29 PM

In dem Artikel werden CSS -Hintergrundeigenschaften, deren Verwendungszwecke für die Verbesserung des Website -Designs und die zu vermeidenen Fehler erläutert. Der Hauptaugenmerk liegt auf reaktionsschnellem Design unter Verwendung der Hintergrundgröße.

Was sind CSS HSL -Farben?Was sind CSS HSL -Farben?Apr 28, 2025 pm 05:28 PM

In Artikel werden CSS HSL -Farben, ihre Verwendung im Webdesign und die Vorteile gegenüber RGB erörtert. Der Schwerpunkt liegt auf der Verbesserung des Designs und der Zugänglichkeit durch intuitive Farbmanipulation.

Wie können wir Kommentare in CSS hinzufügen?Wie können wir Kommentare in CSS hinzufügen?Apr 28, 2025 pm 05:27 PM

In dem Artikel wird die Verwendung von Kommentaren in CSS erörtert, in denen Einzellinien- und Multi-Line-Kommentarsyntaxe beschrieben werden. Es wird argumentiert, dass die Kommentare die Lesbarkeit, die Wartbarkeit und die Zusammenarbeit von Code verbessern, sich jedoch auf die Leistung der Website auswirken können, wenn sie nicht ordnungsgemäß verwaltet werden.

Was sind CSS -Selektoren?Was sind CSS -Selektoren?Apr 28, 2025 pm 05:26 PM

In dem Artikel werden CSS -Selektoren, ihre Typen und die Verwendung zum Styling von HTML -Elementen erörtert. Es vergleicht ID- und Klassenauswahlern und befasst sich mit Leistungsproblemen mit komplexen Selektoren.

Welche Art von CSS hat die höchste Priorität?Welche Art von CSS hat die höchste Priorität?Apr 28, 2025 pm 05:25 PM

In dem Artikel wird die CSS -Priorität erläutert und sich auf Inline -Stile mit der höchsten Spezifität konzentriert. Es erklärt Spezifitätsniveaus, übergeordnete Methoden und Debugging -Tools zur Verwaltung von CSS -Konflikten.

See all articles

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

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung