Heim  >  Artikel  >  Web-Frontend  >  So implementieren Sie das Laden bei Bedarf in Vue

So implementieren Sie das Laden bei Bedarf in Vue

亚连
亚连Original
2018-06-22 18:15:352045Durchsuche

In diesem Artikel wird hauptsächlich die spezifische Implementierung des Vue-On-Demand-Ladens vorgestellt. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Editor, um einen Blick darauf zu werfen

Konzept (Lazy Loading)

Beim Packen und Erstellen einer Anwendung wird das JavaScript-Paket sehr groß, was sich auf das Laden der Seite auswirkt. Wenn wir die Komponenten, die verschiedenen Routen entsprechen, in verschiedene Codeblöcke unterteilen und dann die entsprechenden Komponenten laden können, wenn auf die Route zugegriffen wird, ist dies effizienter.

Szenario

Als Einzelseitenanwendung übernimmt das xxx-Projekt ein komponentenbasiertes Entwicklungsmodell. Bei jedem Start der Homepage werden alle Komponenten geladen. aber zu diesem Zeitpunkt wird nur die Homepage besucht, was dazu führt, dass eine große Anzahl von Komponenten die Ladesituation verunreinigt.

Zweck

Laden Sie beim Zugriff auf die aktuelle Seite nur die entsprechende Komponente, um zu vermeiden, dass alle Seitenkomponenten geladen werden. (Bei Bedarf laden)

Implementierung

app.vue

<template>
  <p id="app">
    <router-view/>
  </p>
</template>

router.js

import Vue from &#39;vue&#39;
import VueRouter from &#39;vue-router&#39;
import &#39;babel-polyfill&#39;
import {Promise} from &#39;es6-promise-polyfill&#39;
import App from &#39;../components/app&#39;

// 定义路由,每个路由映射一个组件。
const Routers = [
  {
    path: &#39;/&#39;,  // 路径
    component: resolve => require([&#39;../components/member/index], resolve)  // 异步加载组件
  },
  {
    path: &#39;/login&#39;,
    component: resolve => require([&#39;../components/member/login&#39;], resolve)
  }
]

const RouterConfig = {
  routes: Routers
}
// 创建router实例,并传递路由配置。
const router = new VueRouter(RouterConfig);
// 创建并挂载根实例。
new Vue({
  el:&#39;#app&#39;,
  router,
  // 将h作为createElement的别名是一个通用惯例。
  render: h =>(App) 
})

Hinweis:

require()-Funktion akzeptiert zwei Parameter. Der erste Parameter ist ein Array, das die abhängigen Module angibt, z. B. ['moduleA', 'moduleB']. Der zweite Parameter ist eine Rückruffunktion, die aufgerufen wird, wenn alle zuvor angegebenen Module erfolgreich geladen wurden. Geladene Module werden als Parameter an diese Funktion übergeben, sodass sie innerhalb der Callback-Funktion verwendet werden können.

Der Beispielcode verwendet eine asynchrone Methode zum Laden von Komponenten. Die Funktion „require“ ist für die asynchrone Einführung der zu rendernden Komponente verantwortlich, während „resolve“ für das asynchrone Callback-Rendering der Komponente verantwortlich ist.

babel-polyfill: Transkodieren und kompilieren

npm install --save babel-polyfill

es6-promise-polyfill löst Promise-Kompatibilitätsprobleme. Für Studenten, die nicht viel über Promise wissen, klicken Sie bitte hier

npm install --save es6-promise-polyfill

Das oben Gesagte habe ich für Sie zusammengestellt. Ich hoffe, es wird Ihnen in Zukunft hilfreich sein.

Verwandte Artikel:

Über Funktionsdrosselung und Funktions-Anti-Shake in JS (ausführliches Tutorial)

So verwenden Sie Vue Seite allgemein Header-Komponentisierung (ausführliches Tutorial)

Was sollten Sie bei der Verwendung von React.setState beachten?

So führen Sie es in vue WeChat SDK ein Schnittstelle

Das obige ist der detaillierte Inhalt vonSo implementieren Sie das Laden bei Bedarf in Vue. 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