react如何控制全局loading_如何做产物优化

相信很多人都有遇到这个问题,为什么 umi 打包完的产物这么大啊?首屏打开时间也太长了吧?特别是用 umi 开发移动端的同学,我们暂且认为首屏开启时间在 3s 内作为合格,5s 内勉强能接受。因为我们去年一年使用 umi 作为移动端的开发,是借助 cordova 将构建产物直接写在本地,所以包的大小对于我们的项目影响较小。但是今年开始有不少的同学将产物以 H5 的形式对外发布,或者以链接的形式,在其他应用中使用 webview 加载出来。于是包大小,首屏打开时间,就成为了我们项目的一个交互指标。

这里我用一个被用户投诉的项目来做演示说明。当然只会展示产物信息,不会涉及任何用户的敏感信息。

这里我们先看一下优化后的结果(同一个电脑同一个网络环境中)。

比对项目 原始数据 优化后的数据
dist 大小 8.7MB 4.5MB
Fast 3G 20s 16.94s
Online 4.3s 503ms

默认打包

使用 umi 执行打包,不增加任何修改和配置的情况下,所有的 js 代码会被编译到 umi.js 文件中。

umi build

9cf423642a5046d0f34257d590aba10a.png

dist 8.7MB 编译时间 21.02s

包名 Stat Size Parsed Size Gzip Size
all 6.77MB 2.75MB 905.54KB
umi.js 6.77MB 2.75MB 905.54KB

增加按需加载

觉得都打到一个文件 umi.js 里面文件太大的话,可以考虑在 config/config 中添加按需加载配置。

export default {
      dynamicImport: {
      },};

页面切换的时候,会有一个默认的 loading ,觉得不是很好看,自己可以修改一下。

export default {
      dynamicImport: {
        // @ 默认指到 src 目录    loading: '@/pages/Loading/index',  },};

d4b85239747faf48b9368748001bab21.png

dist 18.7MB 编译时间 33.68s

包名 Stat Size Parsed Size Gzip Size
all 39.16MB 10.76MB 3.05MB
umijs.js 3.29MB 1.44MB 454.97KB

添加完按需加载,每次在切换页面的时候,都会先走一个 loading 页面,看惯了原生应用的甲方说,不能接受。

这里可以很明显的发现开启按

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值