中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

React 路由懶加載的幾種實現方案

發布時間:2020-09-17 01:35:41 來源:腳本之家 閱讀:423 作者:Manster 欄目:web開發

這篇文字簡單的介紹了React在路由懶加載方面的幾種實現方案。

傳統的兩種方式

import()

符合ECMAScript提議的import()語法,該提案與普通 import 語句或 require 函數的類似,但返回一個 Promise 對象。這意味著模塊時異步加載的

webpack v2+ 使用

使用方式

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

// 或者使用async

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

require.ensure

webpack指定的使用方式

webpack v1 v2 指定使用方式

使用方式

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} />

lazyload-loader

相對于前兩種,此種方式寫法更為簡潔。

使用方式

// webpack 配置文件中 使用lazyload-loader(必須將lazuyload-loader 放置在use的最右側)

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

業務代碼中

 // 使用lazy! 前綴 代表需要懶加載的Router
 
 import Shop from 'lazy!./src/view/Shop';
 
 // Router 正常使用
 <Route path="/shop" component={Shop} />

原理 : https://github.com/rongchanghai/lazyload-loader

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

福海县| 驻马店市| 成安县| 即墨市| 黄石市| 乐亭县| 商南县| 界首市| 拉萨市| 明光市| 湘潭县| 准格尔旗| 宿州市| 景德镇市| 涪陵区| 眉山市| 资讯| 纳雍县| 阿荣旗| 抚松县| 台安县| 缙云县| 财经| 福贡县| 兴山县| 海盐县| 平湖市| 长阳| 临澧县| 沁水县| 宾阳县| 浦县| 台北市| 萍乡市| 安塞县| 三门县| 婺源县| 鹿邑县| 安康市| 渭源县| 涿鹿县|