微信小程序---分包

news2024/9/29 21:33:37

1.什么是分包

分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。

2.分包的好处

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

  • 可以优化小程序首次启动的下载时间
  • 在多团队共同开发时可以更好的解耦协作

3.分包前项目的构成

分包前,小程序项目中所有的页面和资源都被打包到了一起,导致整个项目体积过大,影响小程序首次启动的下载时间。

4.分包后项目的构成

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

  • 主包:一般只包含项目的启动页面或TabBar页面、以及所有分包都需要用到的一些公共资源
  • 分包:只包含和当前分包有关的页面和私有资源
    在这里插入图片描述

5.分包的加载规则

①在小程序启动时,默认会下载主包并启动主包内页面

  • tabBar页面需要放到主包中

②当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展示

  • 非tabBar页面可以按照功能的不同,划分为不同的分包之后,进行按需下载

6.分包的体积限制

目前,小程序分包的大小有以下两个限制:
整个小程序所有分包大小不超过16M(主包+所有分包)
单个分包/主包大小不能超过2M

使用分包

1.配置方法

在app.json 的 subpackages 节点中声明分包的结构

  "pages":[//主包的所有页面
    "pages/index/index",
    "pages/index/list/list",
    "pages/home/home",
    "pages/info/info",
    "pages/message/message",
    "pages/contact/contact",
    "pages/logs/logs"
  ],
 "subPackages": [//通过 subpackages 节点,声明分包的结构
    {
      "root": "pkgA",// 第一个分包的根目录
      "name": "p1",//分包的别名
      "pages": [//当前分包下,所有页面的相对存放路径
        "pages/cat/cat",
        "pages/dog/dog"
      ]
    },
    {
      "root": "pkgB",// 第二个分包的根目录
      "name": "p2",//分包的别名
      "pages": [//当前分包下,所有页面的相对存放路径
        "pages/apple/apple"
      ],
      "independent": true
    }
  ],

2.打包原则

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

3.引用原则

①主包无法引用分包内的私有资源
②分包之间不能相互引用私有资源
③分包可以引用主包内的公共资源

分包–独立分包

1.什么是独立分包

独立分包本质上也是分包,只不过它比较特殊,可以独立于主包和其他分包而单独运行。
在这里插入图片描述

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

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

  • 普通分包必须依赖于主包才能运行
  • 独立分包可以在不下载主包的情况下,独立运行

3.独立分包的应用场景

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

4.独立分包的配置方法

通过 independent 声明独立分包

"independent": true

5.引用原则

独立分包和普通分包以及主包之间,是相互隔绝的,不能相互引用彼此的资源!
例如:
①主包无法引用独立分包内的私有资源
②独立分包之间,不能相互引用私有资源
③独立分包和普通分包之间,不能相互引用私有资源
**④特别注意:**独立分包中不能引用主包内的公共资源

分包–分包预下载

1.什么是分包预下载

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

2.配置分包的预下载

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

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

3.分包预下载的限制

同一个分包中的页面享有共同的预下载大小限额2M,例如:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/174415.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git使用详解(图文+代码):Git分支

Git分支不过如此前言什么是分支分支的新建与合并分支的新建与切换分支的合并遇到冲突时的分支合并分支的管理先写到这了,肝不动了。这几天每天都抽时间更新一点前言 每一种版本控制都以某种形式支持分支。 使用分支的好处就是你可以从开发主线上分离开来&#xff0…

Visusl Studio 2019 使用Sqlite3

1. 下载访问官网下载页面(Sqlite 官方下载),从Window区下载编译好的动态库和头文件。动态库(根据实际需要选择32或64位版本):解压得到:源码文件:解压得到(当然我们只需要sqlite3.h)&…

V4L2 摄像头应用

1.V4L2 是 Video for linux two 的简称,是 Linux 内核中视频类设备的一套驱动框架,为视频类设备驱动开发和应用层提供了一套统一的接口规范。2.使用 V4L2 设备驱动框架注册的设备会在 Linux 系统/dev/目录下生成对应的设备节点文件,设备节点的…

前端HTML5

什么是HTML? 超文本标记语言,它是用来描述网页的一种语言HTML不是一种编程语言,而是一种标记语言标记语言是一种标记标签 浏览器内核 浏览器内核(渲染引擎):负责读取网页内容,整理讯息&#xf…

双方案-基于Mysql 与 ElasticSearch实现关键词提示搜索与全文检索

文章目录前言Mysql检索简述原理其他索引构建实例代码搜索流程搜索ElasticSearch 实现环境配置编码查询与插入前言 就喜欢搞这种不需要怎么费劲的东西,只需要把思路阐述清楚,随笔性质的博文,顺手啊,几乎不用改定就可以当博文发布出…

day19|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代…

生物信息【蛋白序列对比blosum】

参考学习:传统蛋白质序列比对算法 - 知乎 (zhihu.com) 一、蛋白序列同源、相似 同源”(homology)和“相似”(similarity): 同源是指有相同的祖先,在这个意义上,无所谓同源的程度&…

MybatisPlus学习笔记(二)

分页查询 分页在网站使用十分之多1.原始的limit进行分页2.pageHelper第三方插件3.MP内置的分页插件如何使用 1.配置拦截器组件 2.使用page对象 删除操作 逻辑删除 物理删除:从数据库中直接移除逻辑删除:在数据库中没有被删除,而是通…

Centos 7升级系统内核版本

步骤一:检查内核版本 [rootmaster ~]# uname -rs Linux 3.10.0-1160.el7.x86_64 步骤二:升级内核 CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elr…

二叉树知识锦囊(二)

作者:爱塔居 专栏:数据结构 作者简介:大三学生,希望和大家一起进步! 文章目录 文章目录 一、二叉树的存储 二、二叉树的遍历(重点) 2.1 前序遍历 2.2 中序遍历 2.3 后序遍历 2.4 层序遍历 2.5 小…

AX7A200教程(2): DDR3仿真平台搭建(二)

本章主要新建ddr3工程,然后将官方的ddr3仿真文件加入到工程里进行仿真,开发环境2020.1。新建ddr3_test工程新建ddr3工程顶层新建的ddr3_top顶层文件,目前还是空白的调用mig控制器,请参考我上一个章节,这里不在具体写调…

搜索引擎——Elasticsearch

文章目录1.ElasticSearch简介2.基本概念3.Elasticsearch概念-倒排索引4.Elasticsearch和Kibana的安装5.Elasticsearch入门操作5.1_cat5.2PUT&POST新增数据5.3PUT&POST修改数据5.4GET查询数据5.5DELETE删除数据5.7bulk批量操作5.6乐观锁字段6.Elasticsearch进阶操作6.1批…

蓝桥杯重点(C/C++)(随时更新)

目录 1 重点 1.1 取消同步(节约时间,甚至能多骗点分,最好每个程序都写上) 1.2 万能库(可能会耽误编译时间,但是省脑子) 1.3 蓝桥杯return 0千万别忘了写!! 1.4 …

【nginx】Windows下的常见问题踩坑

▒ 目录 ▒🛫 导读需求1️⃣ 安装2️⃣ 中文路径3️⃣ alias指定目录错误及原因正确示例📖 参考资料🛫 导读 需求 最近写了一个前端应用,需要部署后,让别人能访问,想来想去,还是选择了目前最强…

TeeChart Pro VCL FMX 2022.36.220929 Crack

TeeChart Pro VCL FMX图表组件库提供数百种用于数据可视化的 2D 和 3D 图形样式、56 种数学、统计和财务函数供您选择,还有无限数量的轴和 30 个调色板组件。 快速浏览 跨平台的一个来源 针对 Windows、Web 和移动应用程序 Delphi VCL 图表组件 使用 Embarcadero 的…

elasticsearch搜索功能(二)

一、DSL查询文档(P100) 1. DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: (1)查询所有:查询出所有数据,一…

《Python程序设计(第3版)》[美] 约翰·策勒(John Zelle) 第 9 章 答案

《Python程序设计(第3版)》[美] 约翰策勒(John Zelle) 第 9 章 答案 答案仅供参考,若有错误欢迎指正 判断对错 计算机可以生成真正的随机数。Python 的 random 函数返回伪随机整数。自顶向下的设计也称为逐步求精。…

Redis优惠券秒杀 | 黑马点评

目录 一、全局唯一ID 1、全局ID生成器 二、实现秒杀下单 1、基本的下单功能 2、超卖问题 3、乐观锁解决并发问题 三、实现一人一单 1、思路分析 2、代码初步实现 3、关于锁的范围 4、关于事务失效 5、集群下线程并发问题 一、全局唯一ID 订单如果用自增长会存在…

QT动画实例代码QPropertyAnimation的应用

用QT实现动画,我们必定用到QPropertyAnimation,这里我们介绍几种情形的动画实现。如直线动画,曲线动画,路径动画。 一、基础知识 1、QPropertyAnimation的初始化 我们首先必须在包涵QPropertyAnimation的头文件或者模块&#x…

Android之WorkManager处理后台定时任务

WorkManager和Service并不相同,也没有直接的联系。Service是Android系统四大组件之一,它没有被销毁的情况下是一直保持在后台运行的。而WorkManager只是一个处理定时任务的工具,它可以保证即使在应用退出甚至手机重启的情况下,之前…