uniapp小程序分包

  1. 为什么分包
    因小程序有体积和资源加载限制,各家小程序平台提供了分包方式,优化小程序的下载和启动速度。
  2. 什么是分包
    分包是一种技术,用于将应用程序切分为多个模块并单独安装和更新,从而节省网络流量,提高用户体验。
  3. 分包的好坏
    优势:优化下载时间‌、解耦协作
    劣势:配置和管理上的复杂性增加
    注:分包后的项目构成和加载规则也需要开发者仔细考虑和规划,以确保小程序的正确运行和用户体验的优化‌
  4. 优化分包
    在对应平台的配置(manifest.json)下添加"optimization":{"subPackages":true}开启分包优化目前只支持mp-weixin、mp-qq、mp-baidu的分包优化
  5. 主包和分包得资源相互引用
    主包里面是是全局(组件跟资源)都是可以被分包调用的
    调用分包资源可以使用getRequire('../url')的方式请求
    // Promise异步获取
    const getRequire = (url) => {
        return new Promise((resolve, reject) => {
            require.async(url).then((res) => {
              resolve(res)
            }).catch((err) => {
              reject(err)
            });
        })
    }
  6. 使用方法:
    (1).目录结构
    ┌─pages
    │  ├─index
    │  │  └─index.vue
    │  └─login
    │     └─login.vue
    ├─pagesA
    │  ├─com
    │  └─list
    │     └─list.vue
    ├─pagesB
    │  ├─com
    │  └─detail
    │     └─detail.vue
    ├─components
    ├─main.js
    ├─App.vue
    ├─manifest.json
    └─pages.json
    	

    (2). pages.json配置
    {
    	"pages": [
    		{
    			"path": "pages/index/index",
    			"style": { ... }
    		},
    		{
    			"path": "pages/login/login",
    			"style": { ... }
    		}
    	],
    	"subPackages": [ // 页面分包
    		{
    			"root": "pagesA",
    			"pages": [
    				{
    					"path": "list/list",
    					"style": { ... }
    				}
    			]
    		},
    		{
    			"root": "pagesB",
    			"pages": [
    				{
    					"path": "detail/detail",
    					"style": { ... }
    				}
    			]
    		}
    	],
    	"preloadRule": { // 页面预加载
    		"pages/index/index": {
    			"network": "all",
    			"packages": [ "pagesA" ]
    		},
    		"pagesB/login/login": {
    			"network": "all",
    			"packages": [ "pagesB" ]
    		}
    	}
    }
    app的分包,同样支持preloadRule,但网络规则无效。
    字段类型必填默认值说明
    packagesStringArray

    进入页面后预下载分包的 root 或 name。__APP__ 表示主包。
    networkStringwifi在指定网络下预下载,可选值为:all(不限网络)、wifi(仅wifi下预下载)

    注:小程序分包跟主主包大小不能超过2M,所有包(主包分包加起来)不能大于16M。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值