现在小程序开发非常常见,平时工作也是小程序项目居多,因此有必要好好学习了解下小程序的运行原理。 ## 双线程模型 小程序底层采用的是双线程模型:`渲染线程` 负责处理 UI,`逻辑线程` 负责处理接口调用,数据转换。  如图,两个线程是并列的,并没有谁归属于谁,他们之间通过 naive 层进行转发通信,其中用到了`事件驱动`的模式。逻辑线程由客户端提供引擎,iOS 下是 JavaScript Core ,安卓是 X5 内核,模拟器工具是 nwjs。 整个通信过程大致如下: - 视图层通过用户点击,产生事件 - 这个事件被传递到逻辑层 - 逻辑层经过一系列计算,将最终数据传给视图层 - 视图层再将数据渲染为 UI