当前位置: 首页 > news >正文

简介:基于 OpenTiny 组件库的 rendereless 无渲染组件架构

在 HAE 自研阶段,我们实现的数据双向绑定、面向对象的 JS 库、配置式开发的注册表等特性,随着前端技术的高速发展现在已经失去存在的意义,但是在 AUI 阶段探索的新思路新架构,经过大量的业务落地验证,再次推动前端领域的创新。TinyVue 继承了 HAE、AUI 的基因,所有的新技术都从业务中来,到业务中去。而且,在这个过程中,我们通过不断吸收、融合开源社区的最佳实践和创新,不断提升自身的核心竞争力。

目前OpenTiny的TinyVue组件库,是采用Renderless设计架构,结合面向业务逻辑的开发范式与无渲染组件的设计模式,如果使用面向业务逻辑的开发范式,仅仅只能让使用相同的业务逻辑从原本散落到生命周期各个阶段的部分汇聚到一起。

无渲染组件的设计模式的实现方式有很多种,比如React中可以使用HOC高阶函数,Vue中可以使用scopedSlot作用域插槽,但当组件业务逻辑日趋复杂时,高阶函数和作用域插槽让代码变得难以理解和维护。只有将两者结合在一起,才有实现Web组件支持跨端的可能性。

按无渲染组件的设计模式,首先要将组件的逻辑分离成与技术栈无关的柯里化函数。

在定义组件的时候,借助面向逻辑编程的 API,比如 React 框架的 Hooks API、Vue 框架的 Composition API,将组件外观与组件逻辑完全解耦。

按不同终端编写对应的组件模板,再利用前端框架提供的动态组件,实现动态切换不同组件模板,从而满足不同外观的展示需求。

通过前端组件库跨框架,可以达到以下效果:

1. 提高开发效率和代码复用性,减少重复开发的工作量。

2. 统一 UI 风格和交互体验,提高产品的一致性和可用性。

3. 支持多种前端框架,让开发者更加灵活地选择框架。

4. 降低维护成本,减少代码冗余和重复的工作。

总之,前端组件库跨框架可以在不同的前端框架(如 React、Vue、Solid 等)之间共享和复用组件的能力。这种能力可以让开发者在不同的项目中使用同一套组件库,从而提高开发效率和代码复用性,提高产品的质量和用户体验。

参见:

DTSE Tech Talk | 第33期:带你体验很实用的OpenTiny-云社区-华为云

速速报名,30万奖金不容错过!OpenTiny 挑战赛开发指南来咯~

从自研走向开源的 TinyVue 组件库-CSDN博客

从自研走向开源的 TinyVue 组件库_开源_OpenTiny社区_InfoQ写作社区

HDC精彩回顾|7月8日OpenTiny重磅发布 - 哔哩哔哩

http://www.lryc.cn/news/316894.html

相关文章:

  • tcp 连接数上限突破
  • 解决 mmseg/models/decode_heads/mask2former_head.py 中__init__()关键字参数错误
  • ​如何使用 ArcGIS Pro 分析爆炸波及建筑
  • LoadBalancer (本地负载均衡)
  • 每日一题 第一期 洛谷 铺地毯
  • Linux 多线程开发
  • Android 9.0 关于在系统Launcher3中调用截图api总是返回null的解决方案
  • openssl3.2 - exp - 用openssl命令行来模拟ECC加解密的全流程
  • 【Linux进阶之路】HTTP协议
  • 股市新手福音:河北源达“财源滚滚”让投资变得更简单
  • 2024.02.14 校招 实习 内推 面经
  • 5.Java并发编程—JUC线程池架构
  • llama2c(4)之forward、sample、decode
  • 20240312-2-贪心算法
  • 前端 --- HTML
  • curl c++ 实现HTTP GET和POST请求
  • 12、设计模式之代理模式(Proxy)
  • springboot集成Quartz定时任务组件
  • 代码随想录算法训练营第38天—动态规划06 | ● 完全背包 ● *518. 零钱兑换 II ● 377. 组合总和 Ⅳ
  • C语言每日一题(63)复写零
  • ElasticSearch聚合查询
  • 【毕设级项目】基于AI技术的多功能消防机器人(完整工程资料源码)
  • 【一】【设计模式】类关系UML图
  • 【DevOps基础篇】容器化架构基础设施监控方案
  • 【QT】文件流操作(QTextStream/QDataStream)
  • CentOS 7 devtoolset编译addressSanitizer版本失败的问题解决
  • ubuntu2004桌面系统英伟达显卡驱动安装方法
  • Java通过Excel批量上传数据!!!
  • 【PyQT/Pysider】控件背景渐变
  • ChatGPT-4 VS 文心一言4.0