Maison > interface Web > js tutoriel > Comment implémenter le chargement à la demande dans Vue

Comment implémenter le chargement à la demande dans Vue

亚连
Libérer: 2018-06-22 18:15:35
original
2079 Les gens l'ont consulté

Cet article présente principalement l'implémentation spécifique du chargement à la demande de Vue. L'éditeur pense que c'est assez bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil

Concept (chargement paresseux)

Lors de l'empaquetage et de la construction d'une application, le package JavaScript deviendra très volumineux, affectant le chargement des pages. Si nous pouvons diviser les composants correspondant à différentes routes en différents blocs de code, puis charger les composants correspondants lors de l'accès à la route, eh bien, ce sera plus efficace.

Scénario

En tant qu'application monopage, le projet xxx adopte un modèle de développement basé sur les composants. Chaque fois que la page d'accueil est démarrée, tous les composants seront chargés, mais à ce moment-là, seule la page d'accueil est visitée. Voilà, ce qui entraîne un grand nombre de composants contaminant la situation de chargement.

Objectif

Chargez uniquement le composant correspondant lors de l'accès à la page actuelle pour éviter de charger tous les composants de la page. (Chargement à la demande)

Implémentation

app.vue

<template>
  <p id="app">
    <router-view/>
  </p>
</template>
Copier après la connexion

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) 
})
Copier après la connexion

Remarque : la fonction

require() accepte deux paramètres. Le premier paramètre est un tableau, indiquant les modules dépendants, tels que ['moduleA', 'moduleB']. Le deuxième paramètre est une fonction de rappel, qui sera appelée lorsque tous les modules précédemment spécifiés seront chargés avec succès. Les modules chargés sont passés en paramètres à cette fonction, ce qui leur permet d'être utilisés dans la fonction de rappel.

L'exemple de code utilise une méthode asynchrone pour charger les composants. La fonction require est responsable de l'introduction de manière asynchrone du composant à restituer, et la résolution est responsable du rendu de rappel asynchrone du composant.

babel-polyfill : transcoder et compiler Promise

npm install --save babel-polyfill
Copier après la connexion

es6-promise-polyfill résout les problèmes de compatibilité de Promise ; Pour les étudiants qui ne connaissent pas grand-chose à Promise, veuillez aller ici

npm install --save es6-promise-polyfill
Copier après la connexion

Ce qui précède est ce que j'ai compilé pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

À propos de la limitation des fonctions et de l'anti-shake de la fonction dans JS (tutoriel détaillé)

Comment utiliser vue dans vue Componentisation d'en-tête commun de page (tutoriel détaillé)

À quoi devez-vous faire attention lorsque vous utilisez React.setState ?

Comment l'introduire dans vue Interface SDK WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal