宝哥软件园

小程序如何使用分包加载的实现方法

编辑:宝哥软件园 来源:互联网 时间:2021-08-23

“离线打包”机制

微信小程序采用了类似的离线装包方案。以转账小程序为例。当用户第一次打开时,他会先下载所有代码,然后加载页面;当用户再次进入回合制小程序时,他将直接使用下载的代码,从而节省了下载代码和更快打开代码的过程。

看似漂亮的设计,却有两个问题:

第一次打开transfer APPlet的时候白屏时间很长,因为需要下载的代码量接近2.5M,也就是说你的代码越多,白屏时间就会越长,而transfer APP采用的离线机制更好:在用户打开APP的时候下载/更新离线包,这样当用户进入对应的网页时,代码已经下载完毕,没有长时间的白屏过程。当代码部分更新时,没有办法进行增量更新,导致用户每次发布后都需要重新下载所有代码的问题。但是,对转会影响很大。比如微信广告上线时,用户点击广告到加载第一页之间的损失率可以达到40%,这对于FE来说显然是无法接受的表现,小程序分包加载机制可以在一定程度上解决上述问题。

分包装货

小程序的子包加载机制其实是离线包和M页的组合机制,也就是你可以把代码分成主包和N个子包,官方定义为:

小程序启动时,会下载主包,默认情况下会启动主包中的页面。如果用户需要打开子包中的页面,客户端会下载相应的子包,下载完成后显示出来。

总结如下:

打开小程序。默认情况下,在加载相应的分包特征之前,加载主包装并进入分包页面

1.7.3及以上基础库开始支持,不支持的版本默认使用全包方式。整个小程序所有分包的规模不超过40M,单个分包/总包的规模不能超过2M。目前分包的数量没有限制,也就是说你可以放n个分包,甚至每页一个分包录入页/TAB页都必须在主包中关于主包。

第一次进入小程序时,默认下载除了主包编码分包之外的所有编码,输入到主包分包编码中。您可以参考主包装分包代码

由于资源依赖,微信的机制是先下载主包,再下载分包目录。不能在主包目录下分包,可以引用自己包和主包中的资源,不能引用其他分包中的资源。这样做的好处是,当你进入主包页面时,需要下载的代码量要小得多,白屏时间更短,体验更好。

在小程序开发过程中,小程序的规模会随着版本的迭代而越来越大。这个时候,我们希望小程序可以分成几个包,从服务器下载,这样不仅可以加快第一屏的渲染速度,也便于后续实现按需加载。小程序开始支持微信客户端6.6.0版、基础库1.7.3版及以上版本的分包功能。

当您构建applet分包项目时,构建会输出一个或多个分包。每个使用分包的小程序都必须包含一个主包。所谓的主包,即放置默认的启动页面/TabBar页面,所有分包都需要一些公共资源/JS脚本;分包根据开发商的配置进行划分。小程序启动时,会下载主包,默认情况下会启动主包中的页面。当用户在子包中输入页面时,客户端会下载相应的子包,并在下载完成后显示出来。

配置法

配置示例

{ 'pages': ['pages/index ',' pages/shopcart'],' subpackages ' :[{ ' root ' : ' package a ',' pages': ['pages/mine ',' pages/order'] },{ 'root': 'packageB ',' name ' : ' package k2 ',' pages': ['pages/detail ',P

声明子包后,会根据子包配置路径进行打包,子包配置路径外的目录会打包到app(主包)中,app也可以有自己的页面(即最外面的pages字段)。子包的根目录不能是另一个子包中的子目录。标签页必须参考应用程序(主包)中的原则

PackageA不能要求packageBJS文件,但它可以要求自己包中有app,JS文件。程序包a无法导入模板导入程序包b。但是自己包中的模板packageA不能使用packageB的资源,但是可以使用app和自己包的资源。以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

更多资讯
游戏推荐
更多+