点击关注“八戒技术团队”,浏览更多技术干货
小顺序的设计并无彻底遵守 Web 标准,致使小顺序生态和传统 Web 开产生态之间的割裂, Web 端丰硕的工具库其实不能间接用于小顺序开发。另外一方面,业界有着存量的 H5 运用,中短时间内 H5 运用适配到小顺序真个需要还会存在。开发者但愿能增加 H5 运用迁徙到小顺序真个本钱,乃至可以间接运转在小顺序端。
基于以上两点,泛起了一批小顺序和 Web 端同构的解决计划,其中对比典型的是 Kbone 和 Taro 3。本文次要引见微信团队推出的 Kbone 框架。 Kbone是甚么
Kbone 是微信民间开源的解决微信小顺序和 Web 端同构的框架。简略来讲就是只写一套代码,编译后果能够在 Web 端和微信小顺序上运转。经过使用 Kbone 框架,能够用倾向 Web 真个形式来开发小顺序,在开发过程当中能够不限度使用哪一种框架和库,能够使用你长于的技术栈来开发,好比:
1.能够使用 React、Vue 2、Vue 3、jQuery 等框架来开发;
2.能够使用 HTML 标签进行开发,能够使用div、span、a、img等标签; 需求留意的是,Kbone 只反对微信小顺序和 Web 端,不反对其它小顺序平台。 Kbone的原理
为了让 Web 真个代码运转在小顺序里,Kbone 完成了一个适配器,在适配层里摹拟出了阅读器环境,从而抹平了 Web 端和微信小顺序真个平台差别,使用让 Web 真个代码不做太多改变就能运转在小顺序中。
Web端框架根本原理
首先咱们来看下普通 Web 端框架,以 Vue 框架为例。一份 Vue 模板对应一个组件,在代码构建阶段编译成调用 Dom 接口的JS函数,履行此JS函数就会创立出组件对应的 Dom 树,从而渲染到阅读器页面上。
但是,小顺序是双线程的,并无 Dom 树的概念,逻辑层和视图层彻底别离,在逻辑层中开发者能够编写JS脚本,然而无奈间接调用 Dom/Bom 的 API。在小顺序中,视图层和逻辑层的交互是经过数据和事情驱动的。因此,要完成跨端同构,问题是:怎么将Web端代码转为小顺序代码?
业界惯例做法:编译时兼容
目前业界盛行的第三方跨端框架的惯例做法是:编译时兼容。