首页 > 编程语言 >前端【小程序】04-小程序基础篇【分包加载】

前端【小程序】04-小程序基础篇【分包加载】

时间:2024-04-17 21:11:39浏览次数:18  
标签:index 04 程序 分包 根目录 加载 pages 页面

一、分包加载

  官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages.html

  分包加载是优化小程序加载速度的一种手段。

1.1 为什么?

  • 微信平台对小程序单个包的代码体积限制为 2M,超过 2M 的情况下可以采用分包来解决
  • 即使小程序代码体积没有超过 2M 时也可以拆分成多个包来实现按需加载
  • 配置文件能忽略的只有静态资源,代码无法被忽略
  • 拆分出多个包,这样首次加载小程序的时候只会加载主包,主包越小,加载速度越快,用户体验越好

1.2 使用分包

  在全局配置app.json中使用 subPackages 来配置分包的根目录和分包中的页面路径:

 1 {
 2   "entryPagePath": "pages/index/index",
 3   "pages": [
 4     "pages/index/index",
 5     "pages/logs/logs"
 6   ],
 7   "subPackages": [  // 分包配置
 8     {
 9       "root": "pkg_house", // 指定分包的根目录
10       "pages": [  // 指定分包中的页面路径,有多个页面则多个路径
11         "list/list",
12         "detail/detail"
13       ]
14     },
15     {
16       "root": "pkg_repair", 
17       "pages": [
18         "list/list",
19         "detail/detail"
20       ]
21     }
22   ],
23   "window": {
24     "navigationBarTextStyle": "black",
25     "navigationBarTitleText": "Weixin",
26     "navigationBarBackgroundColor": "#ffffff"
27   },
28   "style": "v2",
29   "componentFramework": "glass-easel",
30   "sitemapLocation": "sitemap.json",
31   "lazyCodeLoading": "requiredComponents"
32 }
  • root 指定分包的根目录
  • pages 指定分包中的页面路径
  • tabBar的页面不允许分包,必须包含在主包中
  • 所有包不超过20M

  注:根目录和路径不存在时,小程序开发者工具会自动创建。

跳转到分包页面和之前正常写法一样,写相对或者绝对路径

1 <navigator url="/pkg_house/list/list">跳转到分包页面</navigator>

 

1.3 分包预加载

  在实际使用分包的过程中,纯粹的按需加载也不是最优的方案,可以将即将访问的页面的包预先下载下来,这样能进一步提升小程序加载的速度,通过 preloadRule 来配置预加载的包:

  文档:https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/preload.html

1 {
2   "preloadRule": {
3     "pages/framework/index": {
4       "network": "all",  
5       "packages": ["subpkg_user"]
6     }
7   }
8 }

  上述代码的含义是在加载 pages/framework/index 页面时,自动的去加载 subpkg_user 这个分包,等到要访问这个分包中的页面时会直接打开。

 

字段类型必填默认值说明
packages StringArray 进入页面后预下载分包的 root 或 name__APP__ 表示主包。
network String wifi 在指定网络下预下载,可选值为:
all: 不限网络
wifi: 仅wifi下预下载

 

标签:index,04,程序,分包,根目录,加载,pages,页面
From: https://www.cnblogs.com/wang1001/p/18141737

相关文章

  • 前端【小程序】04-小程序基础篇【生命周期】
    生命周期生命周期是一些名称固定自动执行的函数。 页面生命周期​onLoad 在页面加载完成时执行,只会执行1次,常用于获取地址参数和网络请求onShow 在页面处于可见状态时执行,常用于动态更新数据或状态onReady 在页面初次渲染完成时执行,只会执行1次,常用于节点操作或......
  • delphi TApplicationEvents控件,响应程序级快捷键
    在窗体中插入TApplicationEvents控件,然后设置它的onMessage事件即可 procedureTForm1.ApplicationEventsMessage(varMsg:tagMSG;varHandled:Boolean);varAktywnaForma:TForm;begin//检查是否按下CTRL键并同时按下F7键if(Msg.wParam=VK_F7)and((......
  • 14_一键烧写QT程序到开发板
    一键烧写QT程序到开发板之前我们写好一个程序,都是先交叉编译完,然后在通过nfs/tftp或者其他的方法拷贝到开发板,然后在手动执行,如果我们调试程序很频繁,那我们每次都重新拷贝到开发板,那这样就太麻烦了,有没有方便一点的办法呢,这个就是接下来我们要介绍的一种方法,一键烧写QT程序到开发......
  • 11_QT跨平台运行之把QT程序交叉编译到ARM开发板
    QT跨平台运行之把QT程序交叉编译到ARM开发板交叉编译QT代码步骤一:给QT程序布局,然后在构造函数添加自动设置屏幕大小的代码。代码如下:#include<QDesktopWidget>#include<QStyle>#include<QRect>QDesktopWidget*deskTopWidget=QApplication::desktop();QRectdeskRec......
  • [题解][2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛] Cute Rabbit
    题目描述有n只兔子,每个兔子上有一个数ai。要将所有兔子分为白色和绿色两堆,使所有白色兔子的数对绿色兔子取余结果相等。求绿色兔子的最大数量。题解考虑一种情况:把所有除了最小值的数都涂为绿色,此时显然满足条件。对于一般情况:可以枚举白绿兔子的分割线x。对于小于x,试将其全......
  • 运行程序时出现LeftMenu.ocx未注册或找不到控件问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个LeftMenu.ocx文件(挑选合适的版本文件)把它放入......
  • 运行程序时出现mci32.ocx未注册或控件找不到问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个mci32.ocx文件(挑选合适的版本文件)把它放入到......
  • 运行程序时弹出MovingChar.ocx未注册或控件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个MovingChar.ocx文件(挑选合适的版本文件)把它放......
  • 运行程序出现msadodc.ocx未注册控件无法找到问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个msadodc.ocx文件(挑选合适的版本文件)把它放入......
  • 运行程序时出现mschrt20.ocx未注册找不到控件问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个mschrt20.ocx文件(挑选合适的版本文件)把它放入......