当前位置:首页 > uni-app

uniapp 组件分包

2026-03-05 09:02:02uni-app

分包的概念

在UniApp中,分包(SubPackage)是一种优化手段,将应用拆分成多个子包,按需加载。主包包含核心资源和启动页面,子包存放非核心页面或功能模块,减少首屏加载时间。

分包配置方法

1. 修改 manifest.json
确保启用分包功能,在 manifest.jsonmp-weixin 或其他平台配置中添加以下字段:

uniapp 组件分包

"optimization": {
  "subPackages": true
}

2. 配置 pages.json
pages.json 中通过 subPackages 字段定义分包结构:

{
  "pages": [...], // 主包页面
  "subPackages": [
    {
      "root": "subpackageA",
      "pages": [
        {"path": "page1", "style": {...}},
        {"path": "page2", "style": {...}}
      ]
    },
    {
      "root": "subpackageB",
      "pages": [...]
    }
  ]
}
  • root:分包根目录(需与项目目录一致)。
  • pages:分包内的页面路径(相对 root 的路径)。

分包加载规则

  • 主包:必须包含 pages.json 中未声明在 subPackages 的页面、tabBar 页面及公共依赖。
  • 子包:独立编译,访问子包页面时动态加载。

分包预下载

pages.json 中通过 preloadRule 配置预下载:

uniapp 组件分包

"preloadRule": {
  "pages/index/index": {
    "network": "all",
    "packages": ["subpackageA"]
  }
}
  • 当访问 pages/index/index 时,自动预下载 subpackageA

注意事项

  • 路径规范:分包路径不能与主包或其他分包重复。
  • 依赖隔离:子包应尽量减少对主包的依赖,避免公共资源重复打包。
  • 体积限制(微信小程序):
    • 主包 ≤ 2MB,所有分包 ≤ 8MB,单个分包 ≤ 2MB。

动态引入组件

若需在分包中使用组件,可通过 require 动态引入:

const component = require('@/subpackageA/components/example.vue');

或使用 easycom 自动引入(需在 pages.json 配置):

"easycom": {
  "autoscan": true,
  "custom": {
    "^uni-(.*)": "@/subpackageA/components/uni-$1.vue"
  }
}

标签: 组件uniapp
分享给朋友:

相关文章

uniapp 极光推送

uniapp 极光推送

uniapp 集成极光推送的方法 在 uniapp 中集成极光推送,需要使用官方提供的插件或自行封装原生模块。以下是具体实现方式: 使用官方插件 在 uni-app 插件市场搜索「极光推送」插件,…

uniapp支付功能怎么实现

uniapp支付功能怎么实现

uniapp支付功能实现方法 准备工作 注册微信支付、支付宝等平台的开发者账号,获取必要的商户ID(mch_id)、API密钥(key)、应用ID(appid)等信息。确保项目已配置好相关支付SDK。…

uniapp倒计时组件

uniapp倒计时组件

uniapp倒计时组件实现方法 使用内置组件实现 uniapp提供了<countdown>组件用于倒计时功能,支持自定义格式和样式。示例代码如下: <countdown :t…

uniapp实现懒加载

uniapp实现懒加载

uniapp实现懒加载的方法 在uniapp中实现懒加载可以通过多种方式,以下是几种常见的方法: 使用uni.lazyLoad组件 uniapp提供了内置的懒加载组件,适用于图片等资源的懒加载。在页…

uniapp 审批流程

uniapp 审批流程

uniapp 审批流程实现方法 在uniapp中实现审批流程,通常需要结合前端页面设计和后端逻辑处理。以下是常见的实现方案: 页面设计与组件开发 审批流程通常需要展示流程图、审批记录和操作按钮。可以…

vue实现水印组件

vue实现水印组件

Vue 水印组件的实现方法 使用Canvas绘制水印 在Vue组件中通过Canvas动态生成水印图案,将其作为背景添加到目标元素上。 <template> <div ref="…