uniapp开发微信小程序预加载分包

微信小程序分包是一种优化小程序项目结构和性能的方式。它允许开发者将小程序代码包拆分成多个子包,在用户需要时动态加载这些子包,从而减少小程序的首次加载时间和主包的体积。(总体积不得大于20M,主包(共同文件+静态资源)也不得超过2M)

  1. 主包(主包):主包包含小程序的基础框架和一些常用页面和组件,是用户打开小程序时首先加载的部分。主包的体积限制为2MB。

  2. 分包:分包是指除了主包以外的其他代码包,可以包含小程序的页面、组件和资源文件。分包的主要目的是将小程序的代码和资源分割成多个包,以降低主包的体积和加载时间。

  3. 分包加载策略:微信小程序支持两种分包加载策略:预加载和按需加载。预加载是指在小程序启动时就加载分包,而按需加载是指在需要时动态加载分包。

  4. 配置分包:要使用分包功能,开发者需要在小程序的配置文件(app.json)中进行配置。可以通过 subpackages 字段指定分包的路径、名称和预加载策略。

  5. 动态加载分包:除了在小程序启动时加载分包,开发者还可以使用 wx.loadSubPackage() 方法在小程序运行时动态加载分包。这可以根据用户操作或特定条件来决定加载哪些分包,以实现更灵活的代码加载。

1、manifest开启分包

    "mp-weixin" : {
        "optimization" : {
            "subPackages" : true // 开启分包优化
        },
    },

2、pages.json中写入分包配置代码(与pages同级)

示例:分包页面路径

"subPackages": [{
			"root": "packageA", // 分包1
			"name": "packageA",
			"pages": [{
					"path": "pageA1",
					"style": {
						"navigationBarTitleText": "分包a页面1",
						"enablePullDownRefresh": false
					}
				},
				{
					"path": "pageA2",
					"style": {
						"navigationBarTitleText": "分包a页面2",
						"enablePullDownRefresh": false,
					}
				},
			]
		},
		{
			"root": "packageB", // 分包2
			"name": "packageB",
			"pages": [{
					"path": "pageB1",
					"style": {
						"navigationBarTitleText": "分包b页面1",
						"enablePullDownRefresh": false
					}
				},
				{
					"path": "pageB2",
					"style": {
						"navigationBarTitleText": "分包b页面2",
						"enablePullDownRefresh": false
					}
				}
			]
		}
//再有分包继续添加
	],

分包加载:

	"preloadRule": { // 分包预载配置 
		"pages/mall/index": { // 在进入小程序pages/mall页面时,由框架自动预下载分包A
			"network": "all",
			"packages": ["packageA"]//数组格式  可以加载多个包
		},
		"pages/Mine/Mine": { // 在进入小程序pages/Mine页面时,由框架自动预下载分包A、分包B
			"network": "all",
			"packages": ["packageA","packageB"]
		}
	},

分包文件夹在根目录:

相关推荐

  1. 程序进行分包

    2024-06-13 23:00:03       58 阅读
  2. uniapp开发程序览文件+图片+嵌套网页

    2024-06-13 23:00:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-13 23:00:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-13 23:00:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-13 23:00:03       82 阅读
  4. Python语言-面向对象

    2024-06-13 23:00:03       91 阅读

热门阅读

  1. 雅可比矩阵奇异求解

    2024-06-13 23:00:03       35 阅读
  2. SDK version 2018.3 doesnt match hw_server version 2015.2

    2024-06-13 23:00:03       23 阅读
  3. 英伟达SSD视觉算法模型训练代码解析

    2024-06-13 23:00:03       27 阅读
  4. Stable Diffusion 3 开源发布可下载体验

    2024-06-13 23:00:03       40 阅读
  5. Python PDF转化wolrd代码怎么写

    2024-06-13 23:00:03       31 阅读
  6. 【React】在 React 组件中,怎么使用useContext

    2024-06-13 23:00:03       32 阅读
  7. Cohere reranker 一致的排序器

    2024-06-13 23:00:03       37 阅读
  8. C# —— 逻辑运算符

    2024-06-13 23:00:03       33 阅读
  9. 异界传说-如何应对甲方提出的不合理需求

    2024-06-13 23:00:03       29 阅读
  10. MySQL(3)

    2024-06-13 23:00:03       29 阅读
  11. Android Unable to determine activity name

    2024-06-13 23:00:03       30 阅读