当前位置:网站首页>Small program subcontracting and subcontracting pre-download

Small program subcontracting and subcontracting pre-download

2022-08-10 03:59:00 listen to me

分包

1.什么是分包

Subcontracting refers to putting together a complete applet,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载.

2.分包的好处

对小程序进行分包的好处主要有以下两点:

  1. 可以优化小程序首次启动的下载时间
  2. It can better decouple the work when multiple teams are developing together,提高开发效率

3.分包后项目的构成

分包后,小程序项目由1个主包 + 多个分包组成:

  1. 主包:一般只包含项目的启动页面或tabBar页面、以及所有分包都需要用到的公共资源.
  2. 分包:只包含和当前分包有关的页面和私有资源

在这里插入图片描述

4. 分包的加载规则

  1. During the start of the applet,默认会下载主包并启动主包内的页面
    • tabBar页面需要放到主包中
  2. 当用户进入分包内某个页面时,客户端会把对应的分包下载下来,下载完成后再进行展示
    • 非tabBar页面可以按照功能的不同,划分不同的分包之后,Download on demand

5.分包的体积限制

Currently, there are two restrictions on the size of sub-packages of Mini Programs:

  1. The size of all sub-packages of the entire applet cannot exceed16M ( 主包 + 所有分包 )
  2. 单个分包 / 主包大小不能超过2M

6.分包的配置方法

{
     
 "pages": [  // 主包的所有页面
 "pages/home/home",
 "pages/message/message",
 "pages/contact/contact",
 "pages/index/index",
 "pages/logs/logs"
],
"subPackages": [ /*通过subPackages节点,声明分包的结构*/
 {
     
   "root":"packageA",  // 第一个分包的根目录
   "pages": [          // 当前分包下,所有页面的相对存放路径
     "pages/cat/cat",
     "pages/dog/dog"
   ]
 },
 {
     
   "root":"packageB", // The root directory of the second subpackage 
   "name": "pack2",   // 分包的别名
   "pages": [
     "pages/apple/apple",
     "pages/banana/banana"
   ]
 }
],
}

7.打包原则

  1. 小程序会按subpackages的配置进行分包,subPackage之外的目录将被打包到主包中
  2. 主包也可以有自己的pages (即最外层的pages字段)
  3. tabBar页面必须在主包内
  4. 分包之间不能互相嵌套

8.引用原则

  1. 主包无法引用分包内的私有资源
  2. 分包之间不能相互引用私有资源
  3. 分包可以引用主包内的公共资源

9.什么是独立分包

独立分包本质上也是分包,只不过比较特殊,Can run independently of the main package and other subpackages.

It is possible without opening the main package,The applet can be started through independent subcontracting

10.独立分包和普通分包的区别

最主要的区别:是否依赖于主包才能运行

  1. 普通分包必须依赖于主包才能运行
  2. Independent subcontracting can be done without relying on the main package,独立运行.

11.独立分包的应用场景

开发者可以按需,将某些具有一定功能独立性的页面配置到独立分包中,原因:

  1. 当小程序从普通的分包页面启动时,First download the main package
  2. 而独立分包不依赖主包即可运行,很大程度上提升分包页面的启动速度.

也就是说,Some subpackaged pages do not need to depend on the main package,Then it can be configured into independent subcontracting.

注:一个小程序中可以有多个独立分包.

Independent subcontracting use:

{
     
      "root": "packageA",
      "pages": [
        "pages/cat/cat",
        "pages/dog/dog"
      ],
      "independent": true // Just add this to become an independent subcontract
    },

12.独立分包的引用原则

独立分包和普通分包以及主包之间,是相互隔绝的,不能相互引用彼此的资源,例如:

  1. 主包无法引用独立分包内的私有资源
  2. 独立分包之间,不能相互引用私有资源
  3. 独立分包和普通分包之间,不能相互引用私有资源
  4. 特别注意:独立分包中不能引用主包内的公共资源

分包预下载

1.什么是分包预下载

分包预下载指的是:在进入小程序的某个页面时,由框架自动预下载可能需要的分包,从而提升进入后续分包页面的启动速度.

2.配置分包的预下载

预下载分包的行为,会在进入指定的页面时触发.在app.json中,使用preloadRule节点定义分包的预下载规则,示例代码:

{
     
 "preloadRule":{
       // 与pages同级
     "pages/contact/contact":{
      // 触发分包预下载的页面路径
         // network 表示在指定的网络模式下进行预下载.
         // 可选值为:all(不限网络) 和wifi(仅wifi模式下进行预下载)
         // 默认值为:"all",
         "network":"all",
         // packages 表示进入页面后,预下载哪些分包
         // 可以通过root或name指定预下载哪些分包
         "packages":["pakgA"]
     }
 }
}

3.分包预下载的限制

all main packages The sum of the sub-package sizes cannot be greater than2M

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qa9goo3J-1660010321227)(C:\Users\zhoukangjie\AppData\Roaming\Typora\typora-user-images\image-20220720225804742.png)]

原网站

版权声明
本文为[listen to me]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/222/202208100251546572.html