当前位置: 首页 > 编程日记 > 正文

react按需加载(getComponent优美写法),并指定输出模块名称解决缓存(getComponent与chunkFilename)...

react配合webpack进行按需加载的方法很简单,Route的component改为getComponent,组件用require.ensure的方式获取,并在webpack中配置chunkFilename。
const chooseProducts = (location, cb) => { require.ensure([], require => { cb(null, require('../Component/chooseProducts').default) },'chooseProducts') } const helpCenter = (location, cb) => { require.ensure([], require => { cb(null, require('../Component/helpCenter').default) },'helpCenter') } const saleRecord = (location, cb) => { require.ensure([], require => { cb(null, require('../Component/saleRecord').default) },'saleRecord') } const RouteConfig = ( <Router history={history}> <Route path="/" component={Roots}> <IndexRoute component={index} />//首页 <Route path="index" component={index} /> <Route path="helpCenter" getComponent={helpCenter} />//帮助中心 <Route path="saleRecord" getComponent={saleRecord} />//销售记录 <Redirect from='*' to='/' /> </Route> </Router> );


旧写法

<Route path="movieSearch/:keyWord"
  getComponent={
    (nextState, callback)=> {
      require.ensure([], (require)=> {
      callback(null, require("../containers/MovieSearchContainer.js").default)
    }, "movieSearch")
   }
  }
/>

 
require-ensure 
    • 说明: require.ensure在需要的时候才下载依赖的模块,当参数指定的模块都下载下来了(下载下来的模块还没执行),便执行参数指定的回调函数。require.ensure会创建一个chunk,且可以指定该chunk的名称,如果这个chunk名已经存在了,则将本次依赖的模块合并到已经存在的chunk中,最后这个chunk在webpack构建的时候会单独生成一个文件。
    • 语法:require.ensure(dependencies: String[], callback: function([require]), [chunkName: String])
      • dependencies: 依赖的模块数组
      • callback: 回调函数,该函数调用时会传一个require参数
      • chunkName: 模块名,用于构建时生成文件时命名使用
    • 注意点:requi.ensure的模块只会被下载下来,不会被执行,只有在回调函数使用require(模块名)后,这个模块才会被执行。
 

output: {
  path: path.resolve(__dirname, 'dist'),
  // filename应该比较好理解,就是对应于entry里面生成出来的文件名
  filename: 'bundle.js',
  // 为了做代码的异步加载,所有文件都以/代替根目录转换,即输入/就会自动转为根目录
  // “publicPath”项则被许多Webpack的插件用于在生产模式下更新内嵌到css、html文件里的url值,解决Link标签里的to用绝对路径问题
  publicPath:'/',
  // chunkname我的理解是未被列在entry中,却又需要被打包出来的文件命名配置。
  // 在按需加载(异步)模块的时候,CommonJS的方式异步加载模块:require.ensure() API,

//异步加载的模块是要以文件形式加载哦,所以这时生成的文件名是以chunkname配置的,生成出的文件名,同时解决缓存问题
  chunkFilename: '[name]_[chunkhash:8]_chunk.js'
}

相关文章:

【青少年编程】【二级】绘制方形螺旋

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

软件测试的发展空间大吗

软件测试的发展空间大吗?很多人都非常关心这个问题&#xff0c;软件测试在互联网行业的发展空间是非常大的&#xff0c;学习软件测试技术并不难&#xff0c;只要经过系统的软件测试培训都是可以学会的&#xff0c;下面来看看详细的介绍。 软件测试的发展空间大吗 早期&#xf…

vim windows linux文件格式转换

vim windows linux文件格式转换 set ff? #显示当前文件格式set ffunix #设置成unix格式set ffdos #设置成dos格式posted on 2012-11-02 09:43 一颗卤蛋 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/lyroge/archive/2012/11/02/2750689.html

NCEPU:线下组队学习周报(009)

线下组队学习 经过一段时间的准备&#xff0c;我们组织的线下组队学习逐步进入正轨。欢迎华北电力大学保定校区的伙伴加入进来大家一起学习一起成长。 我们开展组队学习的内容为&#xff1a; &#xff08;1&#xff09;周志华的《机器学习》&#xff08;西瓜书&#xff09; …

零基础学java培训怎么选择学校

java技术在互联网行业的快速发展&#xff0c;引起了很多人的关注&#xff0c;大家都想通过学习java技术来加入到这个行业&#xff0c;那么零基础学java培训怎么选择学校呢?如今市面上的java培训机构这么多&#xff0c;下面小编就来为大家详细的介绍一下吧。 零基础学java培训怎…

C++对象的内存布局1---基础篇----C++ 虚函数表解析

[-] 前言虚函数表一般继承&#xff08;无虚函数覆盖&#xff09;一般继承&#xff08;有虚函数覆盖&#xff09;多重继承&#xff08;无虚函数覆盖&#xff09;多重继承&#xff08;有虚函数覆盖&#xff09;安全性结束语附录一&#xff1a;VC中查看虚函数表附录 二&#xff1a…

iOS开发 关于启动页和停留时间的设置

引言: 在开发一款商业App时&#xff0c;我们大都会为我们的App设置一个启动页。 苹果官方对于iOS启动页的设计说明&#xff1a; 为了增强应用程序启动时的用户体验&#xff0c;您应该提供一个启动图像。启动图像与应用程序的首屏幕看起来非常相似。 当用户在主屏幕上点击您的应…

web前端培训:CSS中单行文本溢出显示省略号的方法

CSS中单行文本溢出显示省略号的方法你知道吗?在web前端技术学习中&#xff0c;这个问题其实是属于老生常谈了&#xff0c;因为css单行文本的应用是非常频繁的&#xff0c;比如网站最基本的文章列表&#xff0c;标题会很长&#xff0c;而显示列表的区域宽度却没有这么宽&#x…

如何使用pyecharts中自带的数据集?

如何使用 pyecharts 中自带的数据集&#xff1f; 我们在学习pyehcarts绘图的过程中&#xff0c;需要一些练习的数据。 pyecharts为我们提供了这样的数据集 – Faker&#xff0c;存储于 faker.py 文件中。 下面&#xff0c;我们就来详细介绍一下。 1. Faker中包含的数据集 …

Ext.app.controller的refs

简 单来说&#xff0c;就是4.0建议的MVC中controller引用组件的一种方式&#xff0c;selector中设置组件&#xff0c;可以用id、classname&#xff0c;但推荐用 ComponentQuery&#xff08;“组件检索”功能&#xff0c;这个也是4.0的新特性&#xff09;来定位组件。ref中设置引…

MBA 工商管理课程-风险型决策方法

&#xff08;二&#xff09;风险型决策方法 适用的条件 未来情况不止一种&#xff0c;管理者不知道到底哪种情况会发生&#xff0c;但知道每种情况发生的概率 常用方法&#xff1a; 决策树法&#xff1a;用树状图来描述各种方案在…

Python培训分享:python如何用cookie实现自动模拟登录?

本期教程Python培训教程为大家带来的是python如何用cookie实现自动模拟登录?据小编的了解&#xff0c;python实现cookie自动登录&#xff0c;目前来说有许多第三方库都可以直接使用&#xff0c;这里以常用的requests库为例简单介绍一下&#xff0c;整个过程非常简单&#xff0…

如何使用pyecharts中的主题样式?

如何使用pyecharts中的主题样式&#xff1f; pyechart为用户提供了一套使用方便的主题风格。 本篇图文将总结pyecharts.globals中ThemeType所有主题风格并进行详细的解释。 class _ThemeType:BUILTIN_THEMES ["light", "dark", "white"]LIGH…

乐意使人恐惧,源于自身的空虚

有一回我对稻草人说&#xff1a;“你总是孤独守望在这片寂寞的土地上&#xff0c;你一定厌倦了吧&#xff1f;” 稻草人回答道&#xff1a;“能使他人恐惧是一种深沉持久的快乐&#xff0c;对此我永远不会感到厌倦。” 我低头沉思&#xff0c;尔后说道&#xff1a;“的确如此&a…

Maven学习(一) - Maven基础

2019独角兽企业重金招聘Python工程师标准>>> Maven作为Java语言的构建和依赖管理工具&#xff0c;已经被广泛使用。但对于maven的pom.xml的配置以及插件的使用&#xff0c;大部分人也仅仅限于了解的程度。工欲善其事&#xff0c;必先利其器。在拖延了很久后&#xf…

Python培训就业方向有哪些

关注“Python培训就业方向有哪些”的同学&#xff0c;基本都是打算学习Python技术但是对于Python的就业还是很迷茫的&#xff0c;针对在这个问题&#xff0c;小编下面为大家做下简单的解析&#xff0c;希望能够帮助到大家。 Python培训就业方向有哪些? 1.Python自动化测试 熟悉…

linux下安装hadoop

关键词&#xff1a;Ubuntu;hadoop; 注意&#xff1a;开始这一步之前&#xff0c;需安装Oracle的jdk&#xff0c;参见&#xff1a; http://www.cnblogs.com/fengfengqingqingyangyang/archive/2012/11/06/2756981.html 1、下载hadoop的合适版本&#xff1a;http://labs.mop.com/…

谢文睿:西瓜书 + 南瓜书 吃瓜系列 5. 决策树

Datawhale南瓜书是经典机器学习教材《机器学习》&#xff08;西瓜书&#xff09;的公式推导解析指南&#xff0c;旨在让在学习西瓜书的过程中&#xff0c;再也没有难推的公式&#xff0c;学好机器学习。 以往内容&#xff1a; 西瓜书公式推导讲解来了&#xff01;0. 导学1. 一…

2017还有29天,你的目标实现了吗?|内有彩蛋

点开标题的&#xff0c;都有一颗大心脏。2017 就要这么过去了&#xff0c;细思极恐啊同志们&#xff0c;年初定下的目标&#xff0c;你实现了几个&#xff1f; 如果这里是一个树洞&#xff0c;你将对着它说点什么呢&#xff1f; 如果你敢留下感想&#xff0c;我们就敢让它上墙。…

Python培训分享:Python内置标准异常及其解析

本期小编为大家带来的Python培训教程是关于“Python内置标准异常及其解析”的内容&#xff0c;我们都知道&#xff0c;在Python技术运作下&#xff0c;总会出现一些Python无法正常处理的程序时就会发生一个异常。异常是一个事件&#xff0c;此事件是在程序执行过程中发生&#…

shell 语法简介(转载)

一、基本语法1.1、shell文件开头shell文件必须以下面的行开始&#xff08;必须方在文件的第一行&#xff09;&#xff1a; #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。 当编辑好脚本时&#xff0c;如果要执行该…

如何利用Seaborn绘制热力图?

如何利用Seaborn绘制热力图&#xff1f; 这是本学期在大数据哲学与社会科学实验室做的第八次分享了。 第一次分享的是&#xff1a; 如何利用“wordcloudjieba”制作中文词云&#xff1f; 第二次分享的是&#xff1a; 如何爬取知乎中问题的回答以及评论的数据&#xff1f; …

如何学习大数据?

想要都进入大数据行业的第一步&#xff0c;是先搞清楚大数据究竟有哪些就业方向。 大数据就业岗位 随着大数据技术在企业界如火如荼的实践&#xff0c;企业对组建大数据团队的迫切程度也也来越高&#xff0c;对与大数据相关高端人才的需求也越来越紧迫&#xff0c;但企业对大数…

软件测试培训分享:Bug的作用有多大?

软件测试人员在工作中遇到最常见的是就是bug&#xff0c;那么bug经常出现是对是错呢?Bug的作用有多大?本期小编为大家介绍的软件测试培训教程就是关于这方面的内容的&#xff0c;来看看下面的详细介绍吧。 软件测试培训分享&#xff1a;Bug的作用有多大?主要有以下几点&…

(转)Linux进程调度时机

转自&#xff1a;http://oss.org.cn/kernel-book/ch05/5.3.2.htm 调度程序虽然特别重要&#xff0c;但它不过是一个存在于内核空间中的函数而已&#xff0c;并不神秘。Linux的调度程序是一个叫Schedule&#xff08;&#xff09;的函数&#xff0c;这个函数被调用的频率很高&…

python 字符编码问题

字符编码 一、字符编码的演进 ASCIIGB2312 GBK1.0 GB18030Unicode编码&#xff1a;国际标准字符集&#xff0c;它将世界各种语言的每个字符定义一个唯一的编码&#xff0c;以满足跨语言、跨平台的文本信息转换。Unicode&#xff08;统一码、万国码&#xff09;规定所有的…

谢文睿:西瓜书 + 南瓜书 吃瓜系列 6. 神经网络

Datawhale南瓜书是经典机器学习教材《机器学习》&#xff08;西瓜书&#xff09;的公式推导解析指南&#xff0c;旨在让在学习西瓜书的过程中&#xff0c;再也没有难推的公式&#xff0c;学好机器学习。 以往内容&#xff1a; 西瓜书公式推导讲解来了&#xff01;0. 导学1. 一…

Python培训常识:Python面试中常被问到的几种设计模式要知道

学习Python技术大家都是为了日后能够找到适合自己的工作岗位&#xff0c;那么除了要学习好Python技术外&#xff0c;对于面试环节的问题也要有所了解&#xff0c;本期小编为大家介绍的Python培训教程就算关于Python面试中常被问到的几种设计模式&#xff0c;希望能够给带来帮助…

ThinkPHP 框架学习

学习内容全部参考开发手册 建议收藏网页 https://www.kancloud.cn/manual/thinkphp/1696 一、几个概念 应用&#xff1a;基于同一个入口文件访问的项目称之为一个应用 模块&#xff1a;一个应用下面可以包含多个模块。每个模块在应用目录下面都是一个独立的子目录 控制器&…

【青少年编程】【三级】克隆猫游戏

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…