Heim  >  Artikel  >  Web-Frontend  >  So verwenden Sie die Codetrennung von Webpack, um das Vue-Laden zu implementieren

So verwenden Sie die Codetrennung von Webpack, um das Vue-Laden zu implementieren

不言
不言Original
2018-08-06 13:48:121493Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Verwendung der Codetrennung von Webpack zur Implementierung des Vue-Ladens. Ich hoffe, dass er für Sie hilfreich ist.

Wenn ein Vue-Projekt sehr groß wird, verwenden Sie die Code-Trennfunktion von Webpack, um den Code von Vue Components, routes oder Vuex zu trennen und ihn bei Bedarf zu laden Geschwindigkeit des ersten Bildschirms der App.

In Vue-Projekten können wir Lazy Loading- und Code-Trennungsfunktionen in drei verschiedenen Situationen verwenden:

  • Vue-Komponenten, auch bekannt als asynchrone Komponenten

  • Vue-Router

  • Vuex

Was die drei gemeinsam haben, ist die Verwendung des dynamischen Imports, der unterstützt wurde in der zweiten Version von Webpack.

Lazy Loading in Vue-Komponenten

In Eggheads gibt es eine Erklärung zur Verwendung asynchroner Vue-Komponenten zum Implementieren des On-Demand-Ladens von Komponenten.

Um eine asynchrone Komponente zu implementieren, müssen Sie nur die Funktion import verwenden, um die Komponente zu registrieren:

Vue.component('AsyncCmp', () => import('./AsyncCmp'))

Sie können auch die lokale Registrierungsmethode verwenden:

new Vue({
  // ...
  components: {
    'AsyncCmp': () => import('./AsyncCmp')
  }
})

Verwenden Sie die Pfeilfunktion, um auf die Funktion import zu zeigen. Vue führt nur dann den Code aus, der das Laden der Komponente anfordert, wenn die Komponente benötigt wird.

Wenn die importierte Komponente mit einer benannten Methode exportiert wird, können Sie die Objektdestrukturierung im Rückgabewert von Promise verwenden, um die Komponente bei Bedarf zu laden. Das Folgende ist ein Beispiel für das Laden der UiAlert-Komponente von KeenUI:

components: {
  UiAlert: () => import('keen-ui').then(({ UiAlert }) => UiAlert)
}

Lazy Loading im Vue-Router

Der Vue-Router unterstützt nativ Lazy Loading. Dasselbe wie das verzögerte Laden von Komponenten mit der Funktion import. Beispielsweise möchten wir die Komponente /login langsam unter der Route Login laden.

// 不再使用 import Login from './login'
const Login = () => import('./login')

new VueRouter({
  routes: [
    { path: '/login', component: Login }
  ]
})

Lazy Loading in Vuex

Die registerModule-Methode von Vuex ermöglicht es uns, Vuex-Module dynamisch zu erstellen. Wenn wir die Funktion import verwenden, um das Modul als Nutzlast in Promise zurückzugeben, wird Lazy Loading erreicht.

const store = new Vuex.Store()

...

// 假设我们想加载'login'这个模块
import('./store/login').then(loginModule => {
  store.registerModule('login', loginModule)
})

Zusammenfassung

Lazy Loading ist in Vue + Webpack sehr einfach. Nutzen Sie die oben erlernten Methoden schnell, um den Code Ihres Vue-Projekts zu trennen und ihn bei Bedarf zu laden. Dies kann die Zeit zum Laden des ersten Bildschirms der Anwendung erheblich verkürzen.

Verwandte Empfehlungen:

Das System fasst gängige JS-Methoden zusammen und organisiert sie (Sammlungen)

Webpack4 und reagiert auf Implementierungsmethoden zum Erstellen mehrerer -seitige Anwendungen

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Codetrennung von Webpack, um das Vue-Laden zu implementieren. 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