作者
莫春辉责编
夏萌
TinyVue的开源征程
OpenTiny提供企业级的Web应用前端开发套件,包括TinyVue/TinyNG组件库、TinyPro管理系统模板、TinyCLI命令行工具以及TinyTheme主题配置系统等。这些前端开发的基础设施和技术已在华为内部积累和沉淀多年,其中TinyVue组件库更是历经九年的磨练,从最初的封闭自研逐步走向社区开源。
TinyVue九年的开源征程大致分为三个阶段:第一阶段走完全自研的线路,当时称为HAE前端框架;第二阶段开始引入开源的Vue框架,更名为AUI组件库;第三阶段对架构进行重新设计,并逐步演变为现在开源的TinyVue组件库。本文将围绕TinyVue三个阶段的技术发展历程,深入代码细节讲解不同阶段的核心竞争力。
全文包含以下章节:
1、完全自研的HAE前端框架
实现数据的双向绑定实现面向对象的JS库配置式开发的注册表
2、迁移到Vue的AUI组件库
封装成Vue组件后端服务适配器标签式与配置式
3、全新架构的TinyVue组件库
开发组件库面临的问题面向逻辑编程与无渲染组件跨端跨技术栈TODO组件示例
完全自研的HAE前端框架
时间回到年,彼时的我刚加入华为公共技术平台部,参与HAE前端框架的研发。HAE的全称是HuaweiApplicationEngine,即华为应用引擎。当时我们部门负责集团IT系统的基础设施建设,在规划HAE时我们对行业和技术趋势进行了分析,并得出结论:云计算、大数据牵引IT架构变化,并带来商业模式转变和产品变革,而云计算和大数据需要新的IT基础架构的支撑。
基于这个背景,我们提出IT2.0架构的目标:利用互联网技术打造面向未来的更高效、敏捷的下一代IT。作为云开发平台,HAE需要支持全面的云化:云端开发、云端测试、云端部署、云端运营,以及应用实施的云化。其中,云端开发由WebIDE负责实现,这个IDE为用户提供基于配置的前端开发能力,因此需要支持可配置的HAE前端框架。
基于配置的开发模式,用户可通过可视化界面来配置前端应用开发中的各种选项,比如定义系统生命周期、配置页面路由、设置组件的属性等。相比之下,传统的开发模式需要用户手写代码来实现这些功能。当时业界还没有能满足这种需求的前端开发框架,走完全自研的路是历史必然的选择。
实现数据的双向绑定
在年,主流的前端技术仍以jQuery为主。传统的jQuery开发方式是通过手动操作DOM元素来更新和响应数据的变化。开发者需要编写大量的代码来处理数据和DOM之间的同步。这种单向的数据流和手动操作的方式,在处理复杂应用的数据和视图之间的同步时,可能会导致代码冗余、维护困难以及出错的可能性增加。
当时刚刚兴起的AngularJS带来了数据双向绑定的概念。数据双向绑定可以自动将数据模型和视图保持同步,当数据发生变化时,视图会自动更新,反之亦然。这种机制减少了开发者在手动处理数据和DOM同步方面的工作量。通过AngularJS开发者只需要