Maison > interface Web > js tutoriel > le corps du texte

Une autre solution pour l'implémentation du chargement paresseux du routage React (code)

不言
Libérer: 2018-10-23 15:30:32
avant
3888 Les gens l'ont consulté

Le contenu de cet article concerne une autre solution (code) pour l'implémentation du chargement paresseux du routage React. Elle a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Cet article présente brièvement plusieurs solutions d'implémentation pour le chargement paresseux des routes dans React.

Les deux méthodes traditionnelles

import()

Conforme à la syntaxe import() proposée par ECMAScript, qui est cohérente avec l'instruction d'importation ordinaire ou require function Similaire à , mais renvoie un objet Promise. Cela signifie que les modules sont chargés de manière asynchrone à l'aide de

webpack v2+ à l'aide de

à l'aide de

function component() {
  return import( /* webpackChunkName: "lodash" */ 'lodash').then(_ => {
    var element = document.createElement('p');
    element.innerHTML = _.join(['Hello', 'webpack'], ' ');
    return element;
  }).catch(error => 'An error occurred while loading the component');
}

// 或者使用async

async function getComponent() {
  var element = document.createElement('p');
  const _ = await import(/* webpackChunkName: "lodash" */ 'lodash');
  element.innerHTML = _.join(['Hello', 'webpack'], ' ');
  return element;
}
Copier après la connexion

require.ensure

webpack Utilisation spécifiée

webpack v1 v2 Utilisation spécifiée

Utilisation

require.ensure([], function(require){
    var list = require('./list');
    list.show();
,'list');

<!-- Router -->
const Foo = require.ensure([], () => {
    require("Foo");
}, err => {
    console.error("We failed to load chunk: " + err);
}, "chunk-name");

//react-router2 or 3
<Route path="/foo" getComponent={Foo} />
Copier après la connexion

lazyload-loader

par rapport à Pour les deux premiers, ceci la manière d’écrire est plus concise.

Comment utiliser

// webpack 配置文件中 使用lazyload-loader(必须将lazuyload-loader 放置在use的最右侧)

module: {
    rules: [
      {
        test: /\.(js|jsx)$/,,
        use: [
          'babel-loader',
          'lazyload-loader'
        ]
      },
Copier après la connexion

Dans le code des affaires

 // 使用lazy! 前缀 代表需要懒加载的Router
 
 import Shop from 'lazy!./src/view/Shop';
 
 // Router 正常使用
  <Route path="/shop" component={Shop} />
Copier après la connexion

Principe : https://github.com/rongchangh...

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:segmentfault.com
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