[小程序开发] 分包加载

news2024/9/20 14:59:02

一、介绍

        分包加载是一种小程序的优化技术,将小程序不同功能的代码,分别打包成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载,在构建小程序分包项目时,构建会输出一个或多个分包,每个使用分包小程序必定包含有一个主包。

  •         主包:包含默认启动页面/TabBar页面以及所有分包都需用到公共资源的包。
  •         分包:根据开发者的配置进行划分出来的子包。
  1. 整个小程序所有分包大小不超过20MB。
  2. 单个分包/主包大小不能超过2MB。

二、分包加载配置

        小程序进行分包加载,需要在app.json中,通过subPackages或者subpackages定义分包结构。

         分包结构三个常用字段:

        1、root:分包的根目录,该目录下的所有文件都会被打包成一个独立的包。(根目录配置不能./开头,也不能以/开头)

        2、name:分包的别名,用于在代码中引用该分包。

        3、pages:指定当前分包中包含哪些页面。

"subPackages": [
        {
            "root": "modules/goodModel",
            "name": "goodModel",
            "pages": [
                "pages/list/list",
                "pages/detail/detail"
            ]
        }
    ]

三、打包原则

        1、tabBar页面必须在主包内。

        2、最外层的pages字段,属于主包的包含的页面。

        3、按subPackages配置路径进行打包,配置路径外的目录将打包到主包中。

        4、分包之间不能相互嵌套,subpackage的根目录不能是另一个subpackage内的子目录。

四、引用原则

        1、主包不可以引用分包的资源,但分包可以使用主包的公共资源。

        2、分包与分包之间资源无法相互引用,分包异步化时不受此条限制。

 五、独立分包

        能够独立于主包和其他分包运行的包。从独立分包中页面进入小程序时,不需要下载主包,当用户进入普通分包或主包内页面时,主包才会被下载。可以将功能相对独立的页面配置到独立分包中。

声明对应的独立分包,给subPackages定义的分包结构添加independent字段即可。

"subPackages": [
        {
            "root": "modules/marketModel",
            "name": "marketModel",
            "pages": [
                "pages/market/market"
            ],
            "independent": true
        }
    ]

注意事项:

1、独立分包中不能依赖主包和其他分包中的资源。

2、主包中的app.wxss对独立分包无效。

3、App只能在主包内定义,独立分包中不能定义App,会造成无法预期的行为。

 六、分包预下载

        访问小程序某个页面时,预先下载其他分包中的代码和资源,当用户需要访问分包中的页面时,已经预先下载的代码和资源,因此可以直接使用。

分包预下载需要在app.json中通过preloadRule字段设置预下载规则。

  •  主包预下载分包
 "preloadRule":{
        "pages/index/index":{
            "network": "all",
            "packages": ["goodModel"]
        }
    }

 "pages/index/index":访问该页面时,进行预下载。

 "packages": ["goodModel"]:预下载页面别名(也可以是路径)。

预下载成功时,控制台显示 

 

  • 独立分包预下载主包 
 "preloadRule":{
        "modules/marketModel/pages/market/market":{
            "network": "all",
            "packages": ["__APP__"]
        }
    }

"__APP__":主包关键字。

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

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

相关文章

搜索二维矩阵

题目链接 搜索二维矩阵 题目描述 注意点 每行中的整数从左到右按非严格递增顺序排列每行的第一个整数大于前一行的最后一个整数1 < matrix.length, matrix[0].length < 100 解答思路 先二分查找找到target所处的行&#xff0c;找到行后再二分查找找到target所处的列…

OpenHarmony实现一次开发多端部署分布式新闻客户端页面

分布式新闻客户端&#xff08;ArkTS&#xff09; 介绍 本篇Codelab基于栅格布局、设备管理和多端协同&#xff0c;实现一次开发&#xff0c;多端部署的分布式新闻客户端页面。主要包含以下功能&#xff1a; 展示新闻列表以及左右滑动切换新闻Tab。点击新闻展示新闻详情页。点…

防范IP地址被攻击的五种措施

IP地址被攻击是网络安全领域的一个常见问题&#xff0c;它可能导致数据泄露、网络瘫痪、恶意软件传播等一系列严重后果。为了保护网络安全&#xff0c;我们需要采取一系列防范措施。以下是五种有效的防范方法&#xff1a; 首先&#xff0c;加强个人设备的安全防护至关重要。我们…

使用npm创建一个全局的cli命令,就像vue-cli一样

我们用过vue-cli等工具包&#xff0c;全局安装之后&#xff0c;我们可以直接使用vue create等命令&#xff0c;实际上能够这样使用的原因&#xff0c;就是使用了package.json里面的bin字段注册命令。接下来就以一个脚本文件为例子为大家演示一下bin是如何发挥作用的。 创建项目…

C语言例3-33:从键盘输入一个正整数保存至int 型变量 num,输出由8~11构成的数(从低位、0号开始编号)

算法分析&#xff1a; 使变量num右移8位&#xff0c;将原来的8~11位移到低4位上构造一个低4位为1&#xff0c;其余位为0的整数&#xff08;0000 0000 0000 1111&#xff09;与变量num进行按位与运算 代码如下&#xff1a; #include<stdio.h> int main(void) {int num,…

优惠:阿里云4核16G服务器优惠价格26.52元1个月、149.00元半年

阿里云4核16G服务器优惠价格26.52元1个月、79.56元3个月、149.00元半年&#xff0c;配置为阿里云服务器ECS经济型e实例ecs.e-c1m4.xlarge&#xff0c;4核16G、按固定带宽 10Mbs、100GB ESSD Entry系统盘&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接打开如下图&a…

蓝桥杯 2022 省B 砍竹子

思路&#xff1a; 非常明显&#xff0c;这题是个贪心。因为这题是求最小操作次数&#xff0c;而且每次操作都会变小&#xff0c;所以肯定要优先操作大的元素&#xff0c;这样它变小之后才可能和其它元素一起操作以减少操作次数。 所以&#xff1a;建立两个数组&#xff0c;一…

面试题小结

一、什么是虚拟dom 描述真实dom的js对象。 二、DOM操作——怎样添加、移除、移动、复制、创建和查找节点 &#xff08;1&#xff09;创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节…

FPGA - AXI4_Lite(实现用户端与axi4_lite之间的交互逻辑)

在之前的博客中对AXI4总线进行了介绍&#xff08;FPGA-AXI4接口协议概述&#xff09;&#xff0c;在这篇博客中&#xff0c;实现用户端与axi4_lite之间的交互逻辑。 一&#xff0c; AXI4 1.1 AXI4 介绍 对AXI4总线简单介绍&#xff08;具体可见FPGA-AXI4接口协议概述&#…

[linux][调度] 内核抢占入门 —— 线程调度次数与 CONFIG_PREEMPTION

在工作中&#xff0c;如果你正在做开发的工作&#xff0c;正在在写代码&#xff0c;这个时候测试同事在测试过程中测出了问题&#xff0c;需要你来定位解决&#xff0c;那么你就应该先暂停写代码的工作&#xff0c;转而来定位解决测试的问题&#xff1b;如果你正在定位测试的问…

C++位运算符(<<,>>,|,^,)

简介 位运算符作用于整数类型的运算对象&#xff0c;并把运算对象看成是二进制位的集合。位运算符提供检查和设置二进制位的功能&#xff0c;一种名为bitset的标准库类型也可以表示任意大小的二进制集合&#xff0c;所以位运算符同样可以用于bitset类型。 如果运算对象是“小…

ShardingSphere啦啦啦

N年前写的ShardingSphere部分&#xff08;上&#xff09;_sharding 分库不能sum-CSDN博客 https://shardingsphere.apache.org/document/current/en/quick-start/ 高性能架构模式&#xff1a; 读写分离&#xff1a;读写操作分散到不同的节点上 (这句话 我悟了) 据SQL语义分…

磁盘在哪里清理?电脑磁盘清理的5个方法

当我们使用电脑时&#xff0c;随着时间的推移&#xff0c;磁盘空间可能会逐渐减少&#xff0c;这通常是因为各种临时文件、系统更新、浏览器缓存等原因造成的。磁盘空间不足可能会导致电脑性能下降&#xff0c;因此定期清理磁盘是非常必要的。那么&#xff0c;磁盘在哪里清理呢…

2核4G服务器优惠价格和性能测试,2024年

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

软件质量属性总结

软件系统的质量就是“软件系统与明确地和隐含地定义的需求相一致的程度”。更具体地说&#xff0c;软件系统质量是软件与明确地叙述的功能和性能需求文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。 根据GB/T 16260.1定义&#xff0c;从…

Java学习day1

打开命令提示符&#xff08;cmd&#xff09;窗口&#xff1a; 按下winR键&#xff0c;输入cmd 按回车或点击确定&#xff0c;打开cmd窗口 常用cmd命令 盘符名称冒号&#xff08;D:)&#xff1a;盘符切换&#xff0c;示例表示由C盘切换到D盘 dir&#xff1a;查看当前路径下的内…

元宇宙VR数字化艺术展降低办展成本

元宇宙AI时代已经来临&#xff0c;越来越多人期待在元宇宙数字空间搭建一个属于自己的虚拟展厅&#xff0c;元宇宙虚拟展厅搭建平台是VR公司深圳华锐视点为企业研发的可编辑工具&#xff0c;那么元宇宙虚拟展厅搭建平台有哪些新突破? 元宇宙虚拟展厅搭建平台采用了先进的web3D…

扫描二维码如何展现不同内容?内容组合排版展示的二维码怎么做?

扫描二维码来查看内容的方式已经被广泛使用&#xff0c;比如视频、文件、图片、音频、文本等类型的内容都可以应用二维码来提供展示。那么有些时候需要展示的内容类型较多&#xff0c;需要将不同的内容组合到一起展示&#xff0c;该如何来操作呢&#xff1f; 下面的内容学会之…

【QT入门】 Qt自定义信号后跨线程发送信号

往期回顾&#xff1a; 【QT入门】 lambda表达式(函数)详解-CSDN博客 【QT入门】 Qt槽函数五种常用写法介绍-CSDN博客 【QT入门】 Qt实现自定义信号-CSDN博客 【QT入门】 Qt自定义信号后跨线程发送信号 由于Qt的子线程是无法直接修改ui&#xff0c;需要发送信号到ui线程进行修改…

Windows Insiders WSLg Linux GUI App 支持尝鲜

2021 年 4 月 21 日&#xff0c;微软在 Developer Blogs 发布了 Windows 预览版 WSL&#xff08;Windows Linux 子系统&#xff09; 对 Linux GUI App 的支持的公告&#x1f517;&#xff0c;碰巧&#x1f600;我最近重装了波电脑&#xff0c;系统换成了 Windows Insiders&…