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 相关文章推荐
JavaScript 高效运行代码分析
Mar 18 Javascript
jQuery的初始化与对象构建之浅析
Apr 12 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
Jul 11 Javascript
基于React.js实现原生js拖拽效果引发的思考
Mar 30 Javascript
常用原生JS兼容性写法汇总
Apr 27 Javascript
Vue.js教程之计算属性
Nov 11 Javascript
微信小程序 textarea 详解及简单使用方法
Dec 05 Javascript
AngularJS自定义指令详解(有分页插件代码)
Jun 12 Javascript
详解Vue-axios 设置请求头问题
Dec 06 Javascript
vue项目使用.env文件配置全局环境变量的方法
Oct 24 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
Python算法应用实战之栈详解
2017/02/04 Python
Python 含参构造函数实例详解
2017/05/25 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
Python urllib2运行过程原理解析
2020/06/04 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
刊首寄语大全
2014/04/11 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
精神病医院见习报告
2014/11/03 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
OpenCV全景图像拼接的实现示例
2021/06/05 Python
详解SQL报错盲注
2022/07/23 SQL Server