问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

staticrouter延迟加载

发布网友 发布时间:2022-04-27 00:35

我来回答

2个回答

懂视网 时间:2022-04-22 17:52

本篇文章给大家带来的内容是关于React路由懒加载实现的另种方案(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

这篇文字简单的介绍了React在路由懒加载方面的几种实现方案。

传统的两种方式

import()

符合ECMAScript提议的import()语法,该提案与普通 import 语句或 require 函数的类似,但返回一个 Promise 对象。这意味着模块时异步加载的

webpack v2+ 使用

使用方式

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

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/rongchangh...

热心网友 时间:2022-04-22 15:00

延迟加载路由也称路由懒加载。当应用变得复杂之后,路由组件也会随之增加,在这个时候Webpack的打包机制会将我们的项目中的所有JavaScript打包成一个文件(除了public目录下的JS文件),这样一来这个JS文件会变得特别大,会拖慢浏览器的加载速度。为此,可以结合Vue的异步组件和Webpack的代码分割功能,从而实现延迟加载,也就是路由懒加载。
在React中,我们可以使用Webpack通过代码拆分来延迟加载组件和路由。 通过将我们的应用程序分成多个块,我们可以仅加载和评估呈现页面所需的代码。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“晚来天欲雪,能饮一杯无?”是什么意思_出处及原文翻译_学习力 胸肌中部怎么练 血沉高是怎么回事,怎样才能降低啊! 中海锦江城多久交房 “QMS”作为“质量管理体系”的英文缩写,其背后理论及应用如何?_百度... 我用QQ登的快手绑定了一个电话号码,电话号码不用了,现在怎么能登得进去... 桂林银行白金客户条件 桂林银行最高等级卡 iQOO 11系列曝光,预计年底正式发布! vivo X90先别买?iQOO 11系列配置堪称豪华 vue-cli + webpack下vue-router懒加载打包后没分成多个JS Vue.js中能使用vue-router + webpack 实现懒加载吗 怎样能把自己的Q号,从对方的列表中删除?请指点指点… 怎样删除Q上的全部好友 怎样从我的Q号里删除对方的Q号 怎样删除Q+啊??? 怎样删除非对方好友的q号? 请问一下怎样删除Q号 巫师3血与酒湖女之剑什么来历 巫师3湖女之剑怎么升级 巫师3湖女之剑快速升级 巫师3湖中剑 怎么升级 巫师3怎样快速获得湖女之剑 之剑最快获得方法 湖女之剑怎么获得 《巫师3》血与酒湖女之袢》椒怎么拿到湖女之剑 巫师3湖女之剑怎么获取 巫师3骑士五德最快过关方法 求四个字的网名!!!闺蜜的,文艺一点的! 求三个字文艺点的网名,类似“于嫣然”,但要男生的 巫师3血与酒湖女之剑中剑怎么获得 求大量小清新旳,文艺范旳简短文字,网名。只有少量旳就别了。 《巫师3》湖女之剑多少级拿最好? 前端使用@vue/cli-service@3.6.0打包,路由懒加载vue文件打包缺失,年初2... 工程师是一个什么职业 注册工程师是一个职业吗?是很高级别的职称吗? 一家机械公司一般有几个工程师 一个人可以评多个工程师职称吗, 一个好的工程师要具备什么素质? 身体内发出的油弄到衣服上了,该怎么清洗 风筝的量词是什么一什么风筝? 风筝的量词 一风筝填量词是什么? 一什么风筝(量词) 一什么风筝? 请问风筝的量词是什莫呀? 一什么风筝填量词一个 馒头和米饭都是主食,哪一个更容易让人发胖呢? 蛋挞液可以拿平底锅熬吗? 平底锅可以做蛋挞吗 日常食用的馒头和米饭,吃哪种更容易让人“发胖”? 用微波炉或平底锅做蛋挞,重点是蛋挞水 平底锅烤吐司蛋塔的做法?