小程序容器助力企业在金融与物联网领域实现高效合规运营,带来的新机遇与挑战如何管理?
1135
2023-01-26
本文目录一览:
小程序的设计并没有完全遵循 Web 规范,导致小程序生态和传统 Web 开发生态之间的割裂,海量优秀的 Web 物料并不能直接用于小程序开发。因而 Taro 在相当一段时间内生态都相对薄弱,UI 框架选择不多的问题更是深深困扰着开发者。
另一方面,业界有着存量的 H5 应用,中短期内 H5 应用适配到小程序端的需要还会存在。我们希望能减少 H5 应用迁移到小程序端的成本,甚至能够直接运行在小程序端。
Taro 团队一直在思考如何最大限度地在小程序环境中复用 Web 生态,直到 Taro 3.0 诞生后,这种想法有了落地的可能。下文将介绍基于 Taro 3.0 实现 H5 同构的思路与问题,以及我们尝试适配了三大移动端 UI 框架 WEUI 、 Ant Design Mobile 、 VantUI 的实验结果。
Taro 3.0 是一款重运行时的跨端框架,它通过模拟实现浏览器的 BOM 和 DOM API 实现了对 React、Vue 等 Web 开发框架的兼容。
既然已经有了浏览器环境的 BOM 和 DOM API,Taro 应用和 Web 应用之间的鸿沟在于小程序组件和 HTML 标签之间的差异。
Taro3 的渲染数据流如下:
前端框架 - Taro DOM - 小程序 data
HTML 标签和小程序组件的标签名、属性、事件是有差异的,而前端框架无需感知这些差异。
因此前端框架适配层、Taro DOM 层不需要改动,只要在 Taro DOM 序列化为小程序 data 这一步作映射即可。
HTML 标签相对小程序组件封装程度更低、功能更简单,可以看作是小程序组件的子集。因此可以按一定的规则,把 HTML 标签映射为小程序组件,如:
完整的标签名映射规则请看: RFC 附录一
如果 HTML 标签的属性能在对应小程序组件的属性上找到对应,则进行映射,如:
完整的属性名映射规则请看: RFC 附录二
把 HTML 特有的事件在小程序端找到相似的事件进行映射,如:
完整的事件映射规则请看: RFC 附录三
前文介绍了我们会把 HTML 标签映射为小程序组件,但是 H5 应用中使用到的 CSS 标签选择器就会失效。
因此 Taro 使用了类名去进行模拟:
Taro 提供两种内置的浏览器默认样式,可以直接引入生效:
理想很美好,但现实却略显骨感。即使 Taro 能实现 BOM、DOM API,支持使用 HTML 标签等,同构方案还是存在着一些框架层面抹平不了的差异。以下列举出若干主要限制:
在 H5 中我们可以调用 DOM API 同步获取元素的尺寸:
但是在小程序中,获取元素尺寸的 API 是异步的:
因此不能兼容那些使用了同步 DOM API 去获取元素尺寸的组件。
<canvas 、 <video 、 <audio 等标签在 H5 端可以直接调用 HTMLElement 上的方法:
但是在 Taro 中,要调用组件上的原生方法,必须先创建对应的 Context :
部分样式或 CSS 选择器在小程序中不支持,如:
首先需要安装 v3.3 的 CLI 工具:
然后进入项目,把 package.json 文件中 taro 相关依赖的版本修改为 ^3.3.0-alpha.2 ,再重新安装依赖(建议先把 node_modules 文件夹删除)。
为了节省项目空间,同构功能是可选的,以 Taro 插件的形式提供。
首先开发者需要安装插件 @tarojs/plugin-html :
然后配置使用此插件:
为了验证同构功能的可用性和效果,我们对 CSS 样式库 WEUI 、React 组件库 Antd Design Mobile 、Vue2 组件库 VantUI 的所有组件进行了测试。
测试效果比较理想,甚至稍微超出我们的预期,配合各组件库自身的按需加载能力,能以小巧的体积使用丰富的组件,相信各位开发者会喜欢这个功能。
仓库地址: taro-weui
WEUI 是一个 CSS 的样式库,与框架无关,兼容性比较高,大部分组件能直接使用。
仓库地址: taro-antd-mobile
能直接兼容使用的组件大概为 80%,主要问题在于:
仓库地址: taro-vant
VantUI 的组件十分丰富,能直接兼容使用的组件大概为 70%。部分开发者会在 Taro 中配合使用 Vant Weapp,但 Vant Weapp 只能运行在微信小程序,因此对 VantUI 的直接适配是一个很好的补充。
适配过程主要遇到的问题有:
同构方案还在持续优化中,部分实现还没有最终定稿。欢迎各位开发者到我们的论坛下留言,提出您的宝贵意见~: 同构方案 RFC 。
欢迎关注凹凸实验室
Web前端开发,这已经发展多年的技术从最早的萌芽状态,发展到了今天的枝繁叶茂,各种技术的层出不穷也让开发者们不断地成长壮大。从最早的简单学习就能轻松应付,到今天的需要系统学习才能入职。那么,未来这项技术又将会走向何方呢?今天,千锋广州小编就和大家一起来看下。
小程序
作为目前前端最热门的方向之一,小程序自诞生之日起,就承担着重要的历史使命,其开发相对简便,无需安装就可使用的特性让一众APP开发者们如临大敌,毕竟如果这项技术得到了普及,APP或许就会被替代掉。
虽然发展势头迅猛,但是目前来看小程序想要在市场中拿到更多的份额或许还需要时日。厂商更新不积极,对超级APP平台的过于依赖,都是摆在小程序面前的棘手问题。所以,尽管小程序是Web前端开发未来的趋势之一,但是还是需要花费不少努力才能做到的。
跨端开发
得益于移动互联网的飞速发展,目前用户能够接触到的终端种类已经越来越丰富了,从最早的手机、电脑,到今天的电视平板等。万物互联这一概念将一众设备连接到了一起,而跨端开发,也就成了这一大趋势中受益最多的技术了。
目前较为成熟的跨端开发方案就数RN和fluter两种,其中RN已经有一段时间没更新了,进展速度缓慢,fluter使用的也相对较少。不过既然已经有了需求,那相信这些技术也会逐步跟上需求的成长速度。
Typescript
作为脱胎于JavaScript的一个超集,其到今天已经发展了有一段时间了,甚至已经有人猜想在未来typescript会取代JavaScript,尽管目前来看这是不可能的。但是它的出现,弥补了js的类型缺陷问题,也确实能够让Web前端开发变得更加轻松。所以,typescript在未来或许也可以在这个领域中占有一席之地。
5G
这虽然不是前端技术,但是它在未来的价值远高于前三个。如果说前三个是打造前端的技术,那么5G就是承载他们的载体。随着5G时代的深入发展,前端技术也必然会从中受益,实现更好的发展。
另外,目前5G还没有专属的应用场景,而Web前端开发,则是轻量化快速开发的代表,二者的结合将会碰撞出怎样的火花?我们拭目以待。
关于跨端开发小程序和移动端小程序开发的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 跨端开发小程序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于移动端小程序开发、跨端开发小程序的信息别忘了在本站进行查找喔。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~