小程序基础库的更新迭代

tech2026-09-28  4

文章目录

小程序的基础库基础库的版本号版本号大小的判断方法 异常基础库的更新微信客户端和小程序基础库的迭代更新

小程序的基础库

小程序的组件、API其实都属于小程序基础库。 基础库的职责是处理数据绑定、组件系统、事件系统、通信系统等一系列框架逻辑,让整个小程序有序的运作起来。 小程序的基础库是JavaScript编写的,它可以被注入到渲染层和逻辑层运行。

渲染层注入的基础库叫做WebView基础库。逻辑层注入的基础库叫做AppService基础库。

小程序的基础库是内置在微信客户端里的,这样做的好处有两点:

降低业务小程序的代码包大小。基础库中的Bug 可以由官方统一修复,无需修改小程序的代码包

基础库的版本号

小程序基础库版本号使用 semver 规范,格式为 Major.Minor.Patch,如1.2.0

Major:重大特性发布时提升1位Minor:月度发布时提升1位Patch:版本修正时提升1位

通过wx.getSystemInfo()或者wx.getSystemInfoSync()方法获取小程序版本号:

let info = wx.getSystemInfoSync() console.log("小程序基础库版本号为:" + info.SDKVersion)

版本号大小的判断方法

compareVersion(v1, v2) { v1 = v1.split('.') v2 = v2.split('.') var len = Math.max(v1.length, v2.length) while (v1.length < len) {v1.push('0')} while (v2.length < len) { v2.push('0') } for (var i = 0; i < len; i++) { var num1 = parseInt(v1[i]) var num2 = parseInt(v2[i]) if (num1 > num2) { return 1 } else if (num1 < num2) { return -1 } } return 0 }

compareVersion(‘1.11.0’, ‘1.9.9’) // => 1 // 1表示 1.11.0比1.9.9要新 compareVersion(‘1.11.0’, ‘1.11.0’) // => 0 // 0表示1.11.0和1.11.0是同一个版本 compareVersion(‘1.11.0’, ‘1.99.0’) // => -1 // -1表示1.11.0比 1.99.0要老

异常

语法错误:一般在开发中工具里就可以显示出来。js 异常: WebView侧使用window.onerror方案进行捕捉异常。逻辑层AppService侧通过把App实例和Page实例的各个生命周期等方法包裹在try-catch里进行捕捉异常。App构造器里提供了onError的回调,当业务代码运行产生异常时,这个回调被触发,同时能够拿到异常的具体信息。

基础库的更新

微信客户端和小程序基础库的迭代更新

微信客户端的迭代更新会带动小程序基础库的迭代更新。比如: 当前微信版本为6.5.10,小程序基础库版本为1.6.0。 微信即将发布的6.5.11版,微信6.5.11版里会加入小程序的直播组件能力。

由于新的能力由微信客户端的月度发布版提供,下一个要发布的基础库版本定为1.7.0。为了避免新版本的基础库给线上小程序带来未知的影响,微信客户端都是携带上一个稳定版的基础库发布的。 也就是微信客户端正式发布6.5.11的版本依旧内置1.6.0版本的基础库。

微信客户端正式发布后,微信会灰度推送1.7.0版本的基础库到6.5.11的微信客户端里,在这个过程会仔细监控各类异常现象、开发者的反馈和用户的反馈。 一般灰度时长为12小时。灰度结束后,用户设备上就会有新版本的基础库。 如果存在重大Bug,那此次推送会被回退,也就是基础库版本回到1.6.0版本。当1.7.0版本推送稳定后,小程序文档就会更新,开发者就可以在小程序中使用1.7.0版本所提供的新能力——直播组件。 之后,如果小程序基础库出现任何Bug,微信官方会推送Patch版本进行修复,此时基础库版本号的Patch位会被提升一位,也就是1.7.1版本。

最新回复(0)