小程序¶
小程序开发使用的框架叫 MINA 框架。MINA框架通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能,对上层提供一整套 JavaScript API,让开发者能够非常方便地使用微信客户端提供的各种基础功能与能力,快速构建应用。
小程序系统分为渲染(视图)层和逻辑层
视图层(View),由 WXML 和 WXSS 编写,由组件来进行展示。
逻辑层(App Service),基于 JavaScript。
微信客户端(Native)会先根据 JSON 配置生成一个界面,紧接着装载这个页面的 WXML 结构和 WXSS 样式,最后客户端会加载 JS 脚本逻辑。
视图层与逻辑层通过事件来通信,绑定在组件上的事件被触发后,将会执行逻辑层对应的回调函数,数据进行处理后再返回给视图层。
运行环境¶
开发者工具仅供调试使用,最终的表现以客户端为准。
启动¶
- 冷启动
用户首次打开小程序,或者是小程序被微信主动销毁之后再次打开,这时候小程序需要重新加载并启动
进入后台 30 分钟后或 5s 内连续两次收到系统告警时,将被主动销毁
冷启动中如果监测到新版本包会异步下载,在下次冷启动时使用新版本
- 热启动
用户已经打开过某个小程序,然后在一定时间内再次打开,此时它不需要重新启动,只是将后台状态的小程序切换到前台
- 生命周期
性能优化¶
初始渲染缓存¶
启用初始渲染缓存,可以使视图层不需要等待逻辑层初始化完毕,而直接提前将页面初始 data 的渲染结果展示给用户,这可以使得页面对用户可见的时间大大提前。
Skyline¶
为了进一步优化小程序性能,提供更为接近原生的用户体验,新增了 Skyline 渲染引擎,其使用更精简高效的渲染管线,并带来诸多增强特性,框架的代码之间无需再通过 JSBridge 进行数据交换,减少了大量通信时间开销。