小程序-工作原理

小程序的核心思想:数据驱动+通信模型

通信模型:小程序的渲染层和逻辑层分别由2个线程管理:渲染层的界面使用了WebView 进行渲染;逻辑层采用JsCore线程运行JS脚本。一个小程序存在多个界面,所以渲染层存在多个WebView线程,这两个线程的通信会经由微信客户端(下文中也会采用Native来代指微信客户端)做中转,逻辑层发送网络请求也经由Native转发,小程序的通信模型如图所示。

小程序-工作原理_第1张图片
通信模型.png

数据驱动:WXML可以先转成JS对象,然后再渲染出真正的Dom树;通过setData把msg数据从“Hello World”变成“Goodbye”,产生的JS对象对应的节点就会发生变化,此时可以对比前后两个JS对象得到变化的部分,然后把这个差异应用到原来的Dom树上,从而达到更新UI的目的,这就是“数据驱动”的原理,如图所示。

小程序-工作原理_第2张图片
数据驱动.png

你可能感兴趣的:(小程序-工作原理)