大家对小程序开发已经非常熟悉了。现在开始,我们会向大家介绍在编写小程序代码背后的方方面面的细节,而在这里我们会先深入小程序底层,介绍底层的架构设计,一些细节原理,以及大家所熟悉的组件系统。通过学习,我们可以在之后的小程序开发中编写出更合理的代码,遇到问题可以有依据可循,能想到更好的解决办法。
1 双线程模型
在前面,我们就有提到过小程序是基于双线程模型的,在这个模型中,小程序的逻辑层与渲染层分开在不同的线程运行,这跟传统的Web 单线程模型有很大的不同,使得小程序架构上多了一些复杂度,也多了一些限制。至于为何选择基于双线程模型来搭建小程序,以及因此而产生的问题和解决方案,接下来我们将一一介绍。
1.1 技术选型
我们在对小程序的架构设计时的要求只有一个,就是要快,包括要渲染快、加载快等。当用户点开某个小程序时,我们期望体验到的是只有很短暂的加载界面,在一个过渡动画之后可以马上看到小程序的主界面。
我们首先需要确定用什么技术来渲染小程序界面,这是跟开发者的学习门槛息息相关的。
一般来说,渲染界面的技术有三种:
- 用纯客户端原生技术来渲染
- 用纯 Web 技术来渲染
- 介于客户端原生技术与 Web 技术之间的,互相结合各自特点的技术(下面统称 Hybrid 技术)来渲染
由于小程序的宿主是微信,所以我们不太可能用纯客户