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 相关文章推荐
对table和ul实现js分页示例分享
Feb 24 Javascript
JavaScript实现网页截图功能
Oct 16 Javascript
DOM基础教程之使用DOM控制表格
Jan 20 Javascript
JS获取数组最大值、最小值及长度的方法
Nov 24 Javascript
Javascript实现倒计时(防页面刷新)实例
Dec 13 Javascript
canvas轨迹回放功能实现
Dec 20 Javascript
实例讲解JavaScript预编译流程
Jan 24 Javascript
JS事件绑定的常用方式实例总结
Mar 02 Javascript
微信小程序实现动态列表项的顺序加载动画
Jul 25 Javascript
JavaScript使用表单元素验证表单的示例代码
Aug 20 Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
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
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
关于PHP文件的自动运行方法分析
2016/05/13 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
微信小程序开发之toast提示插件使用示例
2017/06/08 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
外科实习自我鉴定
2013/10/06 职场文书
汽车运用工程毕业生自荐信
2013/10/29 职场文书
房地产广告词大全
2014/03/19 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
MySQL库表名大小写的选择
2021/06/05 MySQL
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python