开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
native 渲染
性能与优化
小程序全局配置
小程序页面
axml
sjs 语法参考
事件系统
自定义组件
基础能力
分包
基础库
基础库更新日志
开发 > 框架 > 基础能力 > 分包 > 分包异步化
收藏
订阅更新
我的文档
设置
介绍
在小程序中,不同的分包对应着不同的下载单元;因此,当分包之间共享引用了某个自定义组件或require某个 js 模块,最终这些组件和js模块都会被打进 主包,这样才能保证分包加载后功能都可以正常使用,但是这样处理会增加主包的体积,从而影响启动性能。
分包异步化特性将允许通过一些配置和新的接口,使部分跨分包的内容可以等待下载后异步使用,从而一定程度上减少主包的大小。
版本要求
ide 3.3.2 及以上版本。
仅使用 js模块 需要基础库 2.x
仅使用 组件 需要基础库 2.8.2 以上。
使用方法
跨分包自定义组件引用
一个分包使用其它分包的自定义组件时,由于其它分包还未下载或注入,其它分包的组件处于不可用的状态。通过为其它分包的自定义组件设置 占位组件,可以先渲染占位组件作为替代,在分包下载完成后再进行替换。例如:
json
复制代码
// subpackagea/pages/index.json
{
"usingcomponents": {
"list": "../../subpackageb/components/full-list",
"simple-list": "../components/simple-list"
},
"componentplaceholder": {
"list": "simple-list"
}
}
在这个配置中, list 这个自定义组件是跨分包引用组件,在渲染时,list 会使用当前分包内的自定义组件 simple-list 作为替代进行渲染;在 subpackageb 这个分包下载完成后,占位组件就会被替换为对应的跨分包组件。可以使用 my.onlazyloaderror 监听加载事件。
跨分包 js 代码引用
一个分包中的代码引用其它分包的代码时,为了不让下载阻塞代码运行,需要异步获取引用的结果。例如:
常见问题
分包异步化的接入成本高不高?
分包异步化完全兼容历史写法,可以实现渐进式接入。
js 模块只有使用了 require.async / callback 进行引用 ,才会进行异步化处理。
组件必须显式声明 占位组件,才会被异步化处理。
分包异步化处理,是对单个组件/js模块的细颗粒度处理,不会影响当前分包的其它模块。
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图