《小程序技术全解》课程| 青训营笔记

87 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第7天。 这节课的主要目的是认识和了解小程序的业务产品价值;学习和掌握小程序相关技术原理。

发展历程

为什么会有小程序:小程序扩展了微信的使用场景,技术人员也要关注业务价值,技术为业务服务。

业务价值

  1. 渠道价值:为很多场景导流,如美团、美团优选;
  2. 业务探索价值:相比原生app而言,开发难度和成本降低很多,开发者可以用小程序试错,探索新业务;
  3. 数字升级价值:从线下到线上,线下场景覆盖范围广;

技术解析

第三方开发应用最简单的方式:WebView+JSBridge。WebView相当于app内置浏览器。JSBridge为JS和native代码的桥梁,代码注入、url方式可以实现。

这种方式的问题:无网络情况体验不佳,网页切换体验不佳,如何管控保证安全

安全可能遇到的问题:

if(Data.now()>new Data('2022-02-02')){
    document.body.innerHTML = '<h1>hello world</h1>'
}

这种情况下使得程序上线后代码被改变,最后上线的版本可能和审核的版本不一致

针对遇到的问题:开发门槛低、接近原生的使用体验、能够保证安全可控。

开发门槛低:大部分开发人员都会,学习成本低(HTML、CSS、JS)

接近原生的使用体验:资源离线化解决资源加载问题+渲染+页面切换(多个页面用多个WebView链接,切换页面就是切换WebView,之前的页面状态不会销毁,依然存在)

安全管控:不能让开发者使用js来操作DOM,使用独立JS沙箱,只能做JS逻辑,无法做DOMAPI操作。 ===>不操作DOM如何控制界面渲染?框架实现数据处理,渲染DOM。

小程序逻辑

IMG_AE0600A6E1EA-1.png 数据传输决定了性能问题

小程序语法(字节为例)

TTML模版部分、JS数据和方法、TTSS样式

相关扩展

跨端框架

一次开发可适应不同的端

常见跨端框架:

  1. remax:语法:react,厂家:蚂蚁金服
  2. taro: 语法:react/vue,厂家:京东
  3. megalo: 语法:vue,厂家:网易
  4. mpvue: 语法:vue,厂家:美图
  5. uni-app: 语法:vue,厂家:Hbuilder(在vue上比较成熟)

跨端框架原理

编译时方案:AST语法树。存在问题:无法完全抹平差异化

运行时方案:虚拟DOM,Template组件帮助动态生成模版。存在问题:在一些场景下相比小程序原生语法性能会更差。