Heim  >  Artikel  >  Web-Frontend  >  Spezifische Implementierung des Vue-On-Demand-Ladens

Spezifische Implementierung des Vue-On-Demand-Ladens

小云云
小云云Original
2018-05-14 11:34:302452Durchsuche

Beim Packen und Erstellen einer Anwendung kann das JavaScript-Paket sehr groß werden, 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. In diesem Artikel wird hauptsächlich die spezifische Implementierung des On-Demand-Ladens von Vue vorgestellt, in der Hoffnung, allen zu helfen.

Szenario

Als Einzelseitenanwendung übernimmt das xxx-Projekt jedes Mal, wenn Sie die Homepage starten, ein komponentenbasiertes Entwicklungsmodell. Alle Komponenten werden geladen, aber zu diesem Zeitpunkt hat allein der Besuch der Homepage dazu geführt, dass eine große Anzahl von Komponenten den Ladevorgang verunreinigt hat.

Zweck

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

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, und „resolve“ ist für das asynchrone Callback-Rendering der Komponente verantwortlich.

babel-polyfill: Promise 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, gehen Sie bitte hier

npm install --save es6-promise-polyfill

Verwandte Empfehlungen:

Schritte zum Implementieren von Lazy Loading und domänenübergreifender Implementierung mit Js

JS asynchrone Lademethode

Verwenden Sie Vue zum Laden bei Bedarf, um die Benutzererfahrung zu verbessern

Das obige ist der detaillierte Inhalt vonSpezifische Implementierung des Vue-On-Demand-Ladens. 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