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 工具库 Cloudgamer JavaScript Library v0.1 发布
Oct 29 Javascript
javascript获取flash版本号的方法
Nov 20 Javascript
js实现二代身份证号码验证详解
Nov 20 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
Aug 24 Javascript
jquery动态遍历Json对象的属性和值的方法
Jul 27 Javascript
node下使用UglifyJS压缩合并JS文件的方法
Mar 07 Javascript
axios的拦截请求与响应方法
Aug 11 Javascript
layui输入框中只允许输入整数的实现方法
Sep 18 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
Nov 11 Javascript
create-react-app中添加less支持的实现
Nov 15 Javascript
小程序实现按下录音松开识别语音
Nov 22 Javascript
在项目vue中使用echarts的操作步骤
Sep 07 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调用mysql存储过程
2007/02/14 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
PHP生成二维码的两个方法和实例
2014/07/01 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
js玩一玩WSH吧
2007/02/23 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
JS实现放烟花效果
2020/03/10 Javascript
python中logging库的使用总结
2017/10/18 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
Python3内置模块random随机方法小结
2019/07/13 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
Python实现微信好友的数据分析
2019/12/16 Python
python 写一个水果忍者游戏
2021/01/13 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
iHerb香港:维生素、补充剂和天然保健品
2017/08/01 全球购物
科长竞争上岗演讲稿
2014/05/12 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python