小程序原理简述

双线程

双线程,隔离了js和ui,渲染层用webview来渲染,逻辑层用jscore运行js脚本

这两个线程借助native微信客户端通讯,同时客户端还要帮忙发送网络

双线程好处

  • 开发者不能直接操作dom、跳转其他页面
  • 方便管控,禁用危险api

渲染方法

数据驱动,借助vdom

  1. setdata时逻辑层将数据转成字符串,传输到渲染层
  2. webview获得新数据后在页面空闲的时候渲染
  3. 开始渲染时,新数据合并旧数据,diff 节点树,更新ui

每个视图是单独的webview,因此不能超过5个

跟rn方案优点

  • css支持更好
  • rn本身bug多
  • 避免专利问题

小程序webview渲染,部分原生组件客户端渲染
rn是客户端渲染

同层渲染

ios wkchildscrollview 将原生组件挂在overflow scropling touch的组件下面

andlrid webplugin

支持作者

如果我的文章对你有帮助,欢迎 关注和 star 本博客 或是关注我的 github,获取更新通知。欢迎发送邮件到hpoenixf@foxmail.com与作者交流