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 相关文章推荐
JQuery 选择器、过滤器介绍
Feb 14 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
Mar 03 Javascript
JS模拟键盘打字效果的方法
Aug 05 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
Jul 15 Javascript
AngularJS 工作原理详解
Aug 18 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
xcode中获取js文件的路径方法(推荐)
Nov 05 Javascript
ReactNative Image组件使用详解
Aug 07 Javascript
JavaScript登录验证基础教程
Nov 01 Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
javascript设计模式之装饰者模式
Jan 30 Javascript
基于vue 动态菜单 刷新空白问题的解决
Aug 06 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通用检测函数集合
2006/11/25 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
小文件php+SQLite存储方案
2010/09/04 PHP
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
2014/08/04 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
vue实现导航菜单和编辑文本的示例代码
2020/07/04 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
一组SQL面试题
2016/02/15 面试题
公司合作协议书范本
2014/04/18 职场文书
期末学生评语大全
2014/04/24 职场文书
职位说明书范文
2014/05/07 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
学习十八大的心得体会
2014/09/01 职场文书
安全第一课观后感
2015/06/18 职场文书
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫