小程序-工作原理

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

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

通信模型.png

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

数据驱动.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,165评论 1 32
  • 微信小程序 项目结构 上图为微信小程序的项目结构,pages下面包含了小程序中的每一个页面,每一个页面由页面结构,...
    Jensen95阅读 8,974评论 0 19
  • 为什么小程序比较快? 安装包缓存分包加载双线程webview预加载native组件 什么是wxs? https:/...
    虎妞先生阅读 2,743评论 0 1
  • 总是在想着别人会如何看待自己,这样的,自己也渐渐迷失了自我,成为一个只知道为他人服务的奴隶。奴隶是最不值钱的什物,...
    和珅不是胖子阅读 128评论 0 0