微信小程序分包加载

分包加载

某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。

在构建小程序分包项目时,构建会输出一个或多个功能的分包,其中每个分包小程序必定含有一个主包,所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本,而分包则是根据开发者的配置进行划分。

在小程序启动时,默认会下载主包并启动主包内页面,如果用户需要打开分包内某个页面,客户端会把对应分包下载下来,下载完成后再进行展示。

目前小程序分包大小有以下限制:

  • 整个小程序所有分包大小不超过 4M
  • 单个分包/主包大小不能超过 2M

对小程序进行分包,可以优化小程序首次启动的下载时间,以及在多团队共同开发时可以更好的解耦协作。

使用方法

假设支持分包的小程序目录结构如下:

├── app.js
├── app.json
├── app.wxss
├── packageA
│ └── pages
│ ├── cat
│ └── dog
├── packageB
│ └── pages
│ ├── apple
│ └── banana
├── pages
│ ├── index
│ └── logs
└── utils

开发者通过在 app.json subPackages 字段声明项目分包结构:

{ "pages":[ "pages/index", "pages/logs" ], "subPackages": [ { "root": "packageA", "pages": [ "pages/cat", "pages/dog" ] }, { "root": "packageB","pages": [ "pages/apple", "pages/banana" ] } ] }

打包原则

  • 声明 subPackages 后,将按 subPackages 配置路径进行打包,subPackages 配置路径外的目录将被打包到 app(主包) 中
  • app(主包)也可以有自己的 pages(即最外层的 pages 字段)
  • subPackage 的根目录不能是另外一个 subPackage 内的子目录
  • 首页的 TAB 页面必须在 app(主包)内

引用原则

    • packageA 无法 require packageB JS 文件,但可以 require app、自己 package 内的 JS 文件
    • packageA 无法 import packageB 的 template,但可以 require app、自己 package 内的 template
    • packageA 无法使用 packageB 的资源,但可以使用 app、自己 package 内的资源

原文地址:https://www.cnblogs.com/kennyliu/p/9603869.html

时间: 2024-11-02 04:29:02

微信小程序分包加载的相关文章

微信小程序分包加载代码实现方式

直接在 “app.json” 中贴入代码 { "pages": [ "pages/Login/xxxx", ], "subpackages":[{ // 这里就是贴入的代码 root值可以任意改 pages同上 "root":"packageA", "pages":[ "pages/Login/bbb", "pages/Login/ccc", ]

微信小程序之加载更多(分页加载)实例

业务需求: 列表滚动到底部时,继续往上拉,加载更多内容 必备参数: (1)pageindex: 1 //第几次加载 (2)callbackcount: 15 //需要返回数据的个数 其他参数: 根据接口的所需参数 实现原理: 当第一次访问接口时,传递2个必备参数(第1次加载,需要返回数据的个数为15个),和其他参数(需要搜索的字符串)给后台,后台返回第一次数据过来.在请求成功的的回调函数中,判断返回的数据是否>0,是,则取出数据,渲染视图层,并把"上拉加载"显示在列表底部:否,则

微信小程序之----加载中提示框loading

loading loading只有一个属性hidden .wxml <view> <loading hidden="{{hidden}}"> 加载中... </loading> <button bindtap="changeHidden">show/hidden</button> </view> .js Page({ data:{ hidden:true }, changeHidden: fun

微信小程序预加载图片以及占位图片

wxml页面 利用三目运算:代码如下: 1 <image src="{{ima?ima:'../../images/4.jpg'}}" /> (../../images/4.jpg)这里意思是预加载图片大概是一张黑白色的类似于 js代码如下: Page({ /** * 页面的初始数据 */ data: { ima: "", }, /** * 生命周期函数--监听页面加载 */ internet:function(){ setTimeout(functio

微信小程序 动态加载class

<view class=' {{topid==1?"top": "untop"}}' > 原文地址:https://www.cnblogs.com/zsczsc/p/10177441.html

「小程序JAVA实战」 小程序默认加载的页面和生命周期(八)

转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-08/ 小程序如何加载的呢?生命周期!源码:https://github.com/limingios/wxProgram.git 中的No.3 加载页面 小程序默认加载的pages中的第一个目录 不管你的名称,只管你的顺序 其他目录需要通过触发才能加载 生命周期 相关的框架的时候都有生命周期的概念,通过了解生命周期更好的把控框架的使用! onLaunch 第一次打开小程序的初始化,也被调用一次.

微信小程序-分包 -每包2M

限制在2M以内.如果超过2M,可以通过分包加载实现,在app.json中配置即可, 小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载. 在构建小程序分包项目时,构建会输出一个或多个分包.每个使用分包小程序必定含有一个主包.所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本:而分包则是根据开发者的配置进行划分. 在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再

小程序---图片加载出错时,显示默认图片

在读取类似新闻列表等功能时,一般都会有图片,有时会因为数据问题,图片会加载不出来,此时,为了更好的用户体验, 我们应当在图片数据出错时,用默认的图片代替它. html5有对应的img事件:onerror 下面是小程序里的一个demo,事件是binderror: <block wx:for="{{list}}"> <image class='news-img' src="{{item.imgSrc}}" binderror='imageError'

小程序的加载机制和运行机制

一.运行机制 冷启动指的是重新启动,热启动指的是5分钟内从后台切换到前台,只有冷启动才能加载最新的包. 小程序什么时候会关闭? 5min后台运行,连续收到两次(2s)系统告警. 二.加载机制 三.小程序的应用生命周期 四.小程序页面的生命周期 原文地址:https://www.cnblogs.com/xietianjiao/p/11937530.html