微信小程序分包加载

  1. 分包加载的原因:
    a. 单个包超2m,微信小程序规定单个包或者主包的大小不能超过2M;整个小程序所有分包的大小不能超过8M;
    b. 微信小程序的项目随着不断地迭代,功能越来越多,代码包相应越来越大,主包体积过大,就会影响用户进入小程序时候的体验,所以要尽可能的减少主包的大小,对代码包进行分包处理,需要的时候再去加载,也可以在进入某些页面之后再去预加载分包数据

  2. 上代码:

export default class extends wepy.app {
  config = {
    pages: [
      'pages/loading',
      'pages/index',
      'pages/mine',
      'pages/indexInvoice',
      'pages/indexForwarder',
      'pages/userInfo',
      'pages/integral',
      'pages/shareShip',
      'pages/shareInvoice',
      'pages/help',
      'pages/vip'
    ],
    subPackages: [
      {
        root: 'ship',
        name: 'ship',
        pages: [
          'search',
          'invoiceDetails',
          'myship',
          'intention',
          'customer',
          'customerDetails',
          'freightList',
          'bindShip'
        ]
      },
      {
        root: 'freight',
        name: 'freight',
        pages: [
          'fleet',
          'myInvoice',
          'msg',
          'newInvoice',
          'shipDetails',
          'selectInvoice',
          'fleetDetails',
          'send',
          'rechargeHistory',
          'msgConfirm',
          'bindFreight',
          'myInvoiceDetails'
        ]
      }
    ],
    preloadRule: {
      'pages/indexInvoice': {
        network: 'all',
        packages: ['ship']
      },
      'pages/indexForwarder': {
        network: 'all',
        packages: ['freight']
      }
    },
    window: {
      backgroundTextStyle: 'light',
      navigationBarBackgroundColor: '#1270e1',
      navigationBarTitleText: '标题',
      navigationBarTextStyle: '#ffffff'
    },
    networkTimeout: {
      uploadFile: 300000
    }
  };
  globalData = {
    
  };
  constructor() {
    super();
    this.use('requestfix');
    this.use('promisify');
  }
  onLaunch(options) {
    let that = this;
    wx.setStorageSync(wepy.$appConfig.baseUrl + 'scene', options.scene);
    //  await this.Load();
  }
  onShow() {
    this.update();
  }
  onHide() {
 
  }
  unload() {
    
  }
  
 
 
}

preloadRule里面的配置,在进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度。

在进入‘pages/indexInvoice’时会预加载 分包ship;

在进入‘pages/indexForwarder’时会预加载 分包freight;

packages可以设置为进入页面后预下载分包的 root 或 name。APP 表示主包

network可以设置为 all: 不限网络 ,wifi: 仅wifi下预下载

需要注意的是基础库版本低于2.3.0是不支持预加载的,当你进入分包的页面时,才会去加载分包

参考博客:
微信小程序分包加载,以及分包预加载

你可能感兴趣的:(小程序,小程序)