微信小程序分包操作

347 阅读2分钟
首先在app.json里面全局配置里面配置分包:(subpackages 属性和pages同级)

image.png

通过我的截图可以看出来,我在根目录创建了一个名为shopping的分包(shopping这个文件夹里面的文件都会打包到分包里面去);

然后我再shopping这个包里面创建了一个页面(一般新建的页面都要在pages里面声明,现在包里面的页面不需要在pages里面声明,只需要在我们声明的分包里面的pages里面声明,是相对root路径的路径)。

image.png

去网上随便找了几张图片,力求把整个小程序的大小超过2M。

image.png 在主包的首页设置个点击跳转到分包,把图片都引入,然后点击预览
从首页点击跳转到分包页效果:

image.png

image.png

简单的分包就写好啦

分包--预加载

分包预加载,通过app.json里面的 preloadRule 属性配置也加载。

image.png

这样配置的效果就是当我们进入到shop_load(自己随便新建一个页面)的时候会静默的加载我们的shopping包。当我们在进入包页面的时候,就流畅进入了。

独立分包

独立分包就是这个包是独立的,不依赖于主包就能用,当设置为独立分包时,我们从独立分包进入不会加载主包,只有进入主包页面或者非独立分包页面是才加载主包。

使用方法就是前面截图写的,只要在配置包的时候,把independent 设置为 true就成为独立分包。

独立分包注意事项:

从独立分包进入的时候,由于没有加载主包,因此通过getApp()方法拿到的是undefined;只有在加载主包回来这个页面以后才能通过getApp拿到全局参数。
独立分包不能共享其他包样式,包括app.wxss样式。
独立分包不支持使用插件
在低于6.7.2的微信版本的小程序独立分包当成普通分包对待,不具备独立分包的能力。

为了兼容独立分包进入无法全局管理变量的能力,官方在基础版本库2.4.4以后做了兼容,使用 getApp({allowDefault: true}) 可以预先写入变量,当主包加载的时候回同步到app里面。

const app = getApp({allowDefault: true});
 
app.aa = 1;  //  等主包加载的时候回同步进去