面试官:了解小程序分包吗

简介: 面试官:了解小程序分包吗

查看项目中包的依赖分析


下面,我们先来查看以前写的一个小程序项目,然后看他的包的情况。


点击详情 - 本地代码 - 代码依赖分析


网络异常,图片无法展示
|


分包加载的解释


某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。


在构建小程序分包项目时,构建会输出一个或多个分包。每个使用分包小程序必定含有一个主包。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分。


在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展示。


分包的理念就是让第一次加载的包(主包)尽可能小,其他的模块,等到他用到的时候再去加载。


目前小程序分包大小有以下限制:


  • 整个小程序所有分包大小不超过 20M


  • 单个分包/主包大小不能超过 2M


具体操作


下面就来看看分包的具体操作吧


  • app.json文件pages中需要分包的页面路径删除。


  • 通过subpackages属性来配置分包的配置。


  • 将pages文件夹中需要分包的页面提取出来单独作为一个分包文件夹,把每个包的依赖都放在自己的文件夹下管理。


网络异常,图片无法展示
|


网络异常,图片无法展示
|


// app.json
"subPackages": [
    {
      "root": "detailPackage",
      "pages": [
        "pages/detail-search/index",
        "pages/video-detail/index"
      ]
    }
  ],


网络异常,图片无法展示
|


分包配置的一些属性含义


字段 类型 说明
root String 分包根目录
name String 分包别名分包预下载时可以使用
pages StringArray 分包页面路径,相对于分包根目录
independent Boolean 分包是否是独立分包


独立分包


上面我们的分包只是一次不同的分包。我们分包中的数据还是引用了主包中的,所以这就不是独立分包。


独立分包是小程序中一种特殊类型的分包,可以独立于主包和其他分包运行从独立分包中页面进入小程序时,不需要下载主包。当用户进入普通分包或主包内页面时,主包才会被下载。


开发者可以按需将某些具有一定功能独立性的页面配置到独立分包中。当小程序从普通的分包页面启动时,需要首先下载主包;而独立分包不依赖主包即可运行,可以很大程度上提升分包页面的启动速度。


一个小程序中可以有多个独立分包。其实就是我们平常扫码登录小程序后,直接跳转到我们需要的页面,而不是首页,这就大大优化了启动速度。


如何做到独立分包呢?


只需要配置"independent": true即可。


分包预下载


开发者可以通过配置,在进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度。对于独立分包,也可以预下载主包。


就是当主包的内容下载完毕后,在空余时间下载我们指定的预加载包的资源。


"preloadRule": {
    "pages/home-music/index": {
        "network": "all",
        "packages": ["detailPackage"]
    }
}


相关文章
|
1月前
|
人工智能 小程序 JavaScript
【一步步开发AI运动小程序】十四、主包超出2M大小限制,如何将插件分包发布?
本文介绍了如何从零开始开发一个AI运动小程序,重点讲解了通过分包技术解决程序包超过2M限制的问题。详细步骤包括在uni-app中创建分包、配置`manifest.json`和`pages.json`文件,并提供了分包前后代码大小对比,帮助开发者高效实现AI运动功能。
|
5月前
|
存储 小程序 Java
【小程序分包】小程序包大于2M,来这教你分包啊
本文介绍了如何通过分包解决uniapp小程序包体积过大的问题。由于版本升级导致包体积超过2M,即使压缩静态资源也无法满足发布要求。文章详细讲解了分包的原因、步骤及注意事项,并提供了实操示例,帮助读者理解并实现小程序分包,从而减小主包大小
238 1
【小程序分包】小程序包大于2M,来这教你分包啊
|
4月前
|
小程序 JavaScript 开发者
微信小程序分包的相关概念和使用
本文介绍了微信小程序分包的概念、优势、配置方法、加载规则、体积限制,以及独立分包和分包预下载的配置,旨在帮助开发者优化小程序的加载速度和开发效率。
|
6月前
|
小程序
跨端技术问题之页面或组件样式在小程序、小程序插件和小程序分包中有什么差异
跨端技术问题之页面或组件样式在小程序、小程序插件和小程序分包中有什么差异
|
6月前
|
小程序 API
跨端技术问题之哪些形态可以通过getApp()获取全局App实例
跨端技术问题之哪些形态可以通过getApp()获取全局App实例
|
6月前
|
小程序
【微信小程序-原生开发】实用教程21 - 分包
【微信小程序-原生开发】实用教程21 - 分包
420 0
|
8月前
|
小程序
小程序的分包加载具体流程
小程序的分包加载具体流程
253 0
|
8月前
|
小程序
微信小程序-分包
微信小程序-分包
81 0
|
8月前
|
小程序 开发工具 UED
小程序分包的详细流程
小程序分包的详细流程
280 2
|
8月前
|
小程序 前端开发 UED
详细讲解uniapp转小程序分包教程!!!
详细讲解uniapp转小程序分包教程!!!