react MPA 多页配置详解


Posted in Javascript onOctober 18, 2019

create-react-app 默认创建的是 SPA 应用,随着代码量的增加,build 后的 js 文件会越来越大。网上有很多拆分大的 js 文件的方案,但其实把 SPA 拆分成 MPA 也未尝不是一种解决方案。下面是 react 多页面配置过程,以备忘。

一、创建工程

create-react-app react-mpa

二、eject 配置文件

yarn eject

测试下 eject 是否正常yarn start

三、配置页面

① 修改 webpack entry

entry: {
   index:[
    isEnvDevelopment && require.resolve('react-dev-utils/webpackHotDevClient'),
    paths.appIndexJs,
   ].filter(Boolean)
  },

② 修改 webpack output

output: {
  filename: isEnvProduction
    ? 'static/js/[name].[contenthash:8].js'
    : isEnvDevelopment && 'static/js/[name].js',
}

③ 修改 HtmlWebpackPlugin

{
 inject: true,
 template: paths.appHtml,
 // 新增
 filename: 'index.html',
 chunks: ['index'],
}

测试下项目工程是否正常运行 yarn start

四、增加页面

1、新建页面所需文件

① 新建 html 页面
复制 public/index.html 为 public/index2.html

② 新建 js 文件
复制 src/index.js 为 src/index2.js
复制 src/App.js 为 src/App2.js

③ 增加文件引用(config/paths.js)

react MPA 多页配置详解

2、webpack 配置

① 增加 entry 配置

react MPA 多页配置详解

② 增加 HtmlWebpackPlugin 配置

react MPA 多页配置详解

运行工程
yarn start

测试页面
http://localhost:3000/index.html
http://localhost:3000/index2.html

仓库地址
https://github.com/lifefriend/react-mpa

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
DOM Scripting中的图片切换[兼容Firefox]
Jun 12 Javascript
javascript弹出页面回传值的方法
Jan 28 Javascript
Jquery的基本对象转换和文档加载用法实例
Feb 25 Javascript
js省市联动效果完整实例代码
Dec 09 Javascript
基于jquery实现省市联动特效
Dec 17 Javascript
AngularJS实现星星等级评分功能
Sep 24 Javascript
angular源码学习第一篇 setupModuleLoader方法
Oct 20 Javascript
BootStrap便签页的简单应用
Jan 06 Javascript
详解Jquery Easyui的验证扩展
Jan 09 Javascript
jQuery Validate 数组 全部验证问题
Jan 12 Javascript
angular实现spa单页面应用实例
Jul 10 Javascript
微信小程序日期时间选择器使用方法
Feb 01 Javascript
vue滚动插件better-scroll使用详解
Oct 18 #Javascript
VUE实现密码验证与提示功能
Oct 18 #Javascript
VUE实现图片验证码功能
Nov 18 #Javascript
countUp.js实现数字滚动效果
Oct 18 #Javascript
Vue-cli3项目引入Typescript的实现方法
Oct 18 #Javascript
细述Javascript的加法运算符的具体使用
Oct 18 #Javascript
ElementUI之Message功能拓展详解
Oct 18 #Javascript
You might like
PHP两种快速排序算法实例
2015/02/15 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
jquery实现网站列表切换效果的2种方法
2016/08/12 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
Python Web服务器Tornado使用小结
2014/05/06 Python
python用户管理系统的实例讲解
2017/12/23 Python
python图书管理系统
2020/04/05 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
python数组循环处理方法
2019/08/26 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
Python正则表达式学习小例子
2020/03/03 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
python代码实现图书管理系统
2020/11/30 Python
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
Python的两道面试题
2013/06/29 面试题
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
餐厅总经理岗位职责
2013/12/31 职场文书
西式婚礼证婚词
2014/01/12 职场文书
应届生简历中的自我评价
2014/01/13 职场文书
初一地理教学反思
2014/01/16 职场文书
寄语是什么意思
2014/04/10 职场文书
git中cherry-pick命令的使用教程
2022/06/25 Servers