这是我参与「第四届青训营 」笔记创作活动的第8天
写在前面
2017年,1月微信小程序正式发布,小程序全面进入用户的日常工作生活。3月,小程序面向个人开发者开放,自此,小程序数量进入爆发期。 2020年,1月小程序+直播功能打造商家线上经营闭环,完成快速转型,12月互联网巨头全面逐鹿小程序战场。我们还记得当初跳一跳小程序给我们带来的记忆。App时代满满退出,小程序时代来临。
小程序与web
小程序就相当于一层封装好的web容器,其中能够使用容器内部封装好的API进而与DOM发生交互,进行渲染,相比与web,小程序:
- 有着固定的语法以及统一的版本管理,平台可以更方便的进行审核
- 平台能够控制各个入口,比如说二维码,文章内嵌端内分享,入口上也能带来更好的用户体验
- 小程序基于特殊的架构,在流畅度上比web更好,有更优秀的跳转体验
如何开发小程序
小程序需要跟对应的渠道商申请小程序的平台核验,核验完成后,即可以使用相应的开发工具开发小程序。
开发小程序的技术栈一般是基于原生的js html css 即 开发门槛低 HTML+ JS + CSS 接近原生的使用体验 资源加载+渲染+页面切换 能够保证安全可控 独立JS沙箱
跨端小程序-小程序的未来走向
主流的跨端框架基本遵循 React、Vue 语法,这也比较好理解,可以复用现有的技术栈,降低学习成本。
| remax | Taro next | Taro 1/2 | megalo | mpvue | uni-app | chameloen | |
| 语法 | react | react | 类 react (nerve) | vue | vue | vue | 类 vue |
| 厂家 | 蚂蚁金服 | 京东 | 京东 | 网易考拉 | 美团 | Hbuilder | 滴滴 |
从实现原理上,开源社区的跨端框架大致分为下面两类:
compile time** 编译时**runtime** 运行时**
compile time编译时的跨端框架,主要的工作量在编译阶段。他们框架约定了一套自己的 DSL ,在编译打包的过程中,利用 babel 工具通过 AST 进行转译,生成符合小程序规则的代码。
这种方式容易出现 BUG ,而且开发限制过多。早期的** Taro 1.0 和 2.0** 的版本就是采用的这种方案,下文会有更具体的介绍。
而另外一种runtime** 运行时模式**, 跨端框架真正的在小程序的逻辑层中运行起来 React 或者是 Vue 的运行时,然后通过适配层,实现自定义渲染器。这种方式比静态编译有天然的优势,所以 Taro 的最新 Next 版本和 Remax 采用的是这种方案。
写在后面
小程序目前作为一个强大的业务生态,融合了网页的前端技术,对于业务而言是一个很好的探索。同时伴随着前端工程化时代来临,小程序工程化跨端转译也成为主流。