如何实现一个uni app的分包功能

120 阅读1分钟

分包的好处:

1.启动加载主包,按需要加载分包。

2.提高进入页面时的加载速度,不至于必须等所有页面加载完。

分包的注意事项:

  • 微信小程序每个分包的大小是2M,总体积一共不能超过20M。
  • 百度小程序每个分包的大小是2M,总体积一共不能超过8M。
  • 支付宝小程序每个分包的大小是2M,总体积一共不能超过4M。
  • QQ小程序每个分包的大小是2M,总体积一共不能超过24M。
  • 字节小程序每个分包的大小是2M,总体积一共不能超过16M。

分包具体操作:

1.在pages同级创建分包

2.在manifest.json中添加相关字段


"mp-weixin" : {
  "optimization" : {
  "subPackages" : true
  }
}

2.pages.json配置


{
 "pages": [ //pages数组中第一项表示应用启动页
  {
   "path": "pages/index/index",
   "style": {
    "navigationBarTitleText": "uni-app"
   }
  },
  {
    "path" : "pages/message/message",
    "style" :                                                                                    
    {
      "navigationBarTitleText": "",
      "enablePullDownRefresh": false
    }
  },
  {
    "path" : "pages/list/list",
    "style" :                                                                                    
    {
      "navigationBarTitleText": "",
      "enablePullDownRefresh": false
    }
            
    }
  ],
 "subPackages": [
  {
    "root": "subPages",
    "pages": [{
      "path": "detail/detail",
      "style": {
       
      }
    }]
  }
 ],
 "preloadRule": {
   "pages/list/list": {
     "network": "all",
     "packages": ["subPages"]
   }
 },
 "globalStyle": {
  "navigationBarTextStyle": "black",
  "navigationBarTitleText": "uni-app",
  "navigationBarBackgroundColor": "#F8F8F8",
  "backgroundColor": "#F8F8F8"
 }
}

代码分析

1.上面代码preloadRule配置表示意思是:进入pages/list/list就预下载subPages分包,提升提升进入后续分包页面时的启动速度。

2.上面代码subPackages配置:
注意:subPackages 里的pages的路径是 root 下的相对路径,不是全路径。

    subPackages 节点接收一个数组,数组每一项都是应用的子包,其属性值如下:

属性类型是否必填描述
rootString子包的根目录
pagesArray子包由哪些页面组成(数组)

验证分包是否成功:

proloadSubpackages: xxx proloadSubpackages: success