微信小程序代码最大限制2M的解决方案

了解小程序有最大代码量限制之前需要先了解微信小程序的本质:前端近几年都处于技术爆炸时期,
react
最早的是facebook开源的开发框架----react,支持移动网页和原生app的开发(react native),提倡一次学习,全渠道开发。目的是让产品研发更聚焦更敏捷,它有三个重要特性:

数据绑定:数据驱动交互
模块化:可复用的轮子
多终端渲染:适配多客户端,用前端技术就能实现原生app
React 专注于使用 Javascript ES6
React使用JSX,JSX 意味着 React 中的所有内容都是 Javascript -- 用于JSX模板和逻辑。
React 和 Vue 是很灵活的,他们的库可以和各种包搭配
React 经常与 Redux 在一起使用。Redux 以三个基本原则来自述:
	单一数据源(Single source of truth)
	State 是只读的(State is read-only)
	使用纯函数执行修改(Changes are made with pure functions)
换句话说:整个应用程序的状态存储在单个 store 的状态树中。这有助于调试应用程序,一些功能更容易实现。状态是只读的,只能通过 action 来改变,以避免竞争条件(这也有助于调试)。编写 Reducer 来指定如何通过 action 来转换 state。
React是前端组件化框架,React 只有 V —— 你需要自己解决 M 和 C。(模型 - 视图 - 控制器模式(MVC)将项目分为三个部分:模型,视图和控制器。)
React本身就是组件化的。

vue
vue是开发者创造的js框架,它也是一个能高效开发原生app的开发框架,与react的区别不大:

都支持数据绑定
都指出模块化
多终端渲染
Vue 使用 Javascript ES5 或 ES6
Vue通过单文件组件,扩展方法的方式实现组件化
Vue 可以使用 Redux,但它提供了 Vuex 作为自己的解决方案。Vue 支持单向绑定和双向绑定(默认为单向绑定)。
Vue是一个mvvm的框架
Vue使用模板

除了诞生react,Vue等javascript框架,还产生了webpack自动化打包发布,nodejs后端框架,大家都本着让开发效率再高一点,再优雅一点的思路,逐渐走到当下,全部这些创新,彻底释放出移动端端生产力。

小程序的特性
weapp 就是微信小程序,从开发的角度看,它和React 和 Vue差不多,很容易上手,敏捷开发,但是从更系统的角度看,小城的独立特性就很明显:

跨平台:跨越安卓和IOS平台,降低开发成本
更完善:有自己独立并保持快速迭代的开发工具,写代码,调试,发布
更封闭:
更小:代码打包后,要求不能大于2M
轻应用:小而美,用完就走,无需下载注册,不占内存

官网上关于微信小程序的建议:
在这里插入图片描述

最近公司开发的小程序控制了代码量之后还是超过了2M,解决办法是:使用分包加载。
大部分小程序都会有几个功能组成,通常独立,但是会有公共的逻辑,并且这些功能通常会对应几个独立的页面,那么小程序代码的打包,大可不必打成一个,可以按照功能的划分,拆分成几个分包,当需要用到某个功能时,才加载这个功能对应的分包。

对于用户来说,小程序的加载流程变成了:
1,首次启动,加载小程序主包,显示主包内的页面
2,如果用户进入了某个分包的页面,再加载这个对应分包,显示分包的页面

采用分包加载,对于开发者而言,能使小程序有更大的代码体积,承载更多的功能和服务,对于用户而言,可以更快的打开小程序,同时再不影响启动速度的前提下使用更多功能。

分包的划分

在配置前首先需要开发者规划下各个分包需要容纳的内容,建议开发者按照功能划分的原则,将同一个功能下的页面和逻辑放置于同一个目录下,对于一些跨功能之间的公共逻辑,将其放置于主包下,这样可以确保在分包引用这部分功能时,这部分的逻辑一定存在。

在分包划分时,应该注意以下事项:

1,避免分包与分包之间引用上的耦合。因为分包的加载是用户操作触发的,并不能确保其分包加载时,
另一个分包就一定存在,这个时候可能导致js逻辑异常,某些资源找不到的错误;
2,一些公共用到的自定义组件,需要放在主包内;
3,使用小程序自带的tab切换时,list中的页面需要放在主包内。

分包的配置

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

{
	'pages': [
 		 'pages/welcome',
 		 'pages/movie',
  		 'pages/tvPlay'
  		 // 'pages/detail'
	],
	'subPackages': [
  	{
    	 'root': 'packageA',
   		 'pages': [
      		'pages/detail'
    	]
 	 }
	]
}

分包加载的低版本兼容问题
微信6.6.0版本开始支持分包加载,而对于低版本的客户端,编译后台会将所有的分包打包成一个整包,老版本的客户端依然按照整包的方式进行加载。所以还是建议开发者尽量控制代码包的大小。

目前小程序分包大小的限制
整个小程序所有分包大小不超过 8M
单个分包/主包大小不能超过 2M

参考网址:
https://blog.csdn.net/acmdown/article/details/80037660
官方网址:
https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/basic.html?search-key=subPackages
膜拜大佬~~

收到微信开发大佬的提醒,微信整个小程序所有分包大小调整为不超过 8M!!!

  • 10
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值