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

76 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第4天

一、本堂课重点内容:

  1. 小程序发展历程
  1. 小程序业务价值
  1. 小程序技术解析
  1. 相关拓展内容

二、小程序发展历程:

发展历程

核心数据

小程序生态

三、小程序业务价值:

与Web的区别

  • 有着固定的语法以及统一的版本管理,平台可以更方便的进行审核

  • 平台能的够控制各个入口,如二维码,文章内嵌,端内分享入口上也能带来更好的用户体验

  • 小程序基于特殊的架构,在流畅度上比WEB更好,有更优秀的跳转体验

    三大价值

  • 渠道价值:依托于许多超级平台,如美团和美团优选小程序带来的流量占比分别是40%和80%

  • 业务探索价值:相对于原生App,开发成本低

  • 数字升级价值:从线下到线上

四、小程序技术解析:

小程序原理

第三方开发应用最简单最方便的方式: WebView + JSBridge

WebView可以简单理解为App内置的浏览器,在App内展示网页,但是除了Web本身,我们想让开发者能够通过JS调用更多App上的功能怎么办?

App上的功能比如打开相机,打开地图等,这些单靠Web Api本身做不到,这就需要用到JSBridge

顾名思义,JSBridge就是JS和Native代码之间的桥梁,让两者能相互沟通和调用,实现JSBridge的方式有很多,如代码注入,url拦截等

提出三个目标:

  1. 开发门槛低:HTML + JS + CSS
  2. 接近原生的使用体验:资源加载 + 渲染 + 页面切换 image.png

多层Webview

  1. 保证安全可控:独立JS沙箱(分开逻辑层和渲染层)

逻辑层: image.png 那不操作DOM如何控制页面渲染呢?
系统预留了setData函数, 仅需关系数据流:

graph LR
Data --> 根据数据处理DOM --> 页面

三个目标结合的方案——小程序

image.png

小程序语法

image.png

实现番茄时钟

小程序预览图:

image.png

部分代码参考:

image.png

image.png

image.png

image.png

五、相关拓展内容:

跨端框架介绍

为了解决两个问题:

  1. 复杂应用构建
  1. 一次开发跨多端

常见框架

image.png

跨端框架原理

编译时:

AST抽象语法树 (拓展阅读:AST详解与运用

就是把我们写的代码按照一定的规则转换成一种树形结构。

然后再转换为小程序代码。 image.png

image.png

缺陷:无法完全抹平差异,背离了一次开发跨多端初衷

运行时:

依赖于两部分:

  1. 虚拟DOM(逻辑->真实DOM)
  2. Template组件(渲染->实际元素树)

image.png

image.png

一些场景下相比小程序原生语法性能差:例如长列表。