React_Native拆分bundle之patch拆包

为什么要拆包

背景介绍

随着RN的包越来越大,第一次载入RN包的时长越来越长,用户需要等待的时间也就越长,体验较差。另外多个团队开发的话,互相之间的依赖也是个大问题,出现编译不过的话,就会出现水桶效应,所有的团队都要等待这个有问题的团队,从而拉低了整体的效率。

另外我一直希望,能够将React-Native的业务功能,做成类似小程序一样:即用即载入,随时可以更新。想想我们的app里面包含了多少个用户也许永远用不到的功能,还有当我们希望上一个新功能的时候,一定要等待新的版本的审核,这给运营等带来了巨大的麻烦和风险。如果用户点击某个功能,然后马上载入线上的webBundle,用户之后就可以直接使用我们的最新功能了,以后再次进入的时候,也无需等待,那该多好。

拆包目标

所以我们拆包的目标就很明确了:

1. 优化载入时间,提高用户体验
2. 解开依赖关系,提高开发效率
3. 实现webBundle,即用即载入

示意图如下:

国外国内app拆包情况

上面啰嗦了为什么想要去拆包,好像是蛮有必要的O_o。但是当我去看国内外著名的app使用React-Native的情况时,发现真的是泾渭分明:国内基本都拆包了,包括携程、QQ音乐等,而国外没有拆包的,比如React-Native的创造者FaceBook,虽然他们的包大小已经到了10M。

不禁让我很疑惑,难道国外没有这个需求么?为什么拆包和热更新等几乎国内的硬需求,他们却好像完全没有这方面的需求。希望有读者知道的话可以告知我~

拆包的几种方案

在讲具体的方案之前,我们先看下,React-Native的包,究竟是如何打出来,然后是怎么载入到native中的。

如何打包

这里我直接使用QQ技术团队的一张图:

如何载入

这里主要讲下iOS React-Native0.39版本的情况。
RN提供了两种形式来载入:

1. - (NSURL *)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值