详情介绍
OpenTiny是华为云和流程IT团队多年内部实践的结晶,经过华为内外众多大型项目的打磨后正式开源。它的设计初衷是解决大型企业级应用开发中的两大痛点:一是不同技术栈带来的维护成本,二是UI一致性难以保证。通过提供统一的组件规范和工具链,OpenTiny让团队即使混用Vue和Angular,也能保持界面风格统一、交互体验一致。
这个项目包含三个核心产品:TinyVue是一款功能强大的Vue组件库,支持Vue 2和Vue 3,你可以平滑升级而无需重写代码;TinyNG是针对Angular开发者的专业组件库,同样覆盖了后台管理系统所需的各类组件;TinyCLI则是配套的命令行工具,提供脚手架、构建优化、代码检查等能力,让项目初始化和管理更加规范。
OpenTiny最特别的地方在于它的“跨端适配”能力。同一套组件代码,通过简单的配置就能自动适配PC、平板、手机甚至大屏显示,这在做响应式企业应用时特别实用。它的主题系统也非常灵活,你可以通过在线主题配置平台,拖拽调整颜色、圆角、间距,实时预览效果,然后一键下载主题包应用到项目中。
除了基础的组件库,OpenTiny还提供了低代码引擎TinyEngine。这是一个可视化搭建平台,业务人员可以通过拖拽组件快速生成页面,开发者则可以在此基础上进行二次开发和集成。这种模式特别适合那些需要频繁迭代后台管理界面的团队,能大幅减少重复劳动。
作为一个开源项目,OpenTiny在GitHub上保持着活跃的更新,社区贡献者包括华为内部的工程师和外部的开发者。项目提供了完善的中英文文档,还有在线示例和社区支持渠道,你可以通过GitHub Issues、微信群等方式获取帮助或参与讨论。
官网入口地址
官网入口网址:https://opentiny.design/
(注意:官网链接目前无法访问,建议优先访问GitHub项目页)
下载地址
开源项目地址:https://github.com/opentiny/tiny-vue (以TinyVue为例,他组件可在opentiny组织下找到)
功能介绍
多技术栈组件库
OpenTiny提供了两套完整的组件库,覆盖主流前端框架:
-
TinyVue:为Vue生态打造,同时支持Vue 2.6、Vue 2.7和Vue 3.0。这意味着你可以在同一个项目中混合使用不同Vue版本,或者从老版本平滑升级。它包含了60+个高质量组件,从基础的按钮、表格、表单,到复杂的树形控件、穿梭框、日程安排,应有尽有。
-
TinyNG:针对Angular开发者的组件库,遵循Angular的设计规范和实践。提供了与TinyVue对应的组件集,保证跨技术栈项目的视觉一致性。
跨端适配能力
OpenTiny的组件内置了响应式设计,能自动适应不同屏幕尺寸:
-
PC端:标准的桌面交互,支持键盘导航、右键菜单等
-
移动端:触mō优化,手势支持,移动端弹窗适配
-
大屏:针对数据可视化场景优化,支持超大尺寸和缩放
-
混合适配:同一个页面可以同时包含PC和移动组件,自动切换
主题配置系统
OpenTiny提供了灵活的主题定制能力:
-
在线配置:访问主题配置平台,可视化调整品牌色、功能色、边框圆角、阴影、字体等
-
实时预览:调整参数时右侧组件实时变化,所见即所得
-
主题导出:配置完成后下载主题包,通过几行代码集成到项目中
-
多主题切换:支持运行时动态切换主题,比如日间模式/夜间模式
命令行工具TinyCLI
配套的开发工具链包含多个实用功能:
-
项目脚手架:一键生成符合规范的项目结构,内置代码规范、提交规范
-
组件创建:快速生成新组件的模板代码
-
构建优化:针对组件库的按需加载优化,自动处理依赖关系
-
代码检查:集成了ESLint、Stylelint,保持代码风格一致
-
单元测试:内置测试运行器,方便编写和运行组件测试
低代码引擎TinyEngine
可视化搭建平台的核心能力:
-
拖拽布局:通过拖拽组件到画布,快速搭建页面结构
-
属性面板:右侧实时编辑组件属性,所见即所得
-
数据模拟:支持配置模拟数据,预览真实效果
-
代码生成:导出标准的前端代码,可继续手工开发
-
扩展机制:支持接入自定义组件和业务逻辑
国际化支持
OpenTiny内置了完善的多语言方案:
-
语言包:支持简体中文、繁体中文、英文、日文等主流语言
-
动态切换:运行时无缝切换语言,无需刷新页面
-
日期时间:自动适配当地日期格式、星期显示
-
数字货币:支持不同地区的货币符号和格式
无障碍访问
组件库遵循WAI-ARIA规范,确保可访问性:
-
键盘操作:所有组件都支持纯键盘操作
-
屏幕阅读器:添加了适当的ARIA标签,读屏软件可准确播报
-
高对比度:支持Windows高对比度模式
-
焦点管理:合理的焦点顺序和视觉提示
企业级特性
针对大型项目特别设计的功能:
-
虚拟滚动:表格和列表支持海量数据渲染,性能稳定
-
权限控制:组件级别的权限校验,集成常见权限模型
-
操作日志:关键操作可记录用户行为
-
浏览器兼容:支持IE11及主流现代浏览器
应用场景
大型企业后台系统
某世界500强企业的内部管理系统,原本有Vue和Angular两个技术栈的团队并行开发,界面风格差异大,维护成本高。引入OpenTiny后,两个团队使用同一套设计规范,组件表现一致,设计资源的复用率提升了60%。同时主题配置功能让系统轻松适配了不同子品牌的视觉要求。
云服务控制台
一家云计算公司用OpenTiny重构了他们的用户控制台。复杂的资源管理页面用表格组件配合虚拟滚动,即使管理数万个云主机也能流畅操作。多级菜单和权限组件集成了他们的RBAC权限模型,不同角色看到的功能入口自动过滤。
低代码开发平台
某软件公司基于TinyEngine构建了面向客户的低代码开发平台。实施顾问通过拖拽就能快速搭建业务表单和工作流,客户反馈周期从原来的2周缩短到3天。对于复杂的定制需求,开发者可以导出代码继续开发,兼顾了效率和灵活性。
跨端企业应用
一家物流公司的移动办公应用需要同时在手机、平板、PC上使用。用OpenTiny的响应式组件,一套代码适配所有终端。仓库管理员用手持终端扫描,办公室人员用PC审批,调度中心用大屏看板,界面体验一致,开发维护成本大幅降低。
必要补充信息
定价模式
OpenTiny是免费的开源项目,采用MIT许可证。这意味着你可以免费用于个人项目、商业项目,甚至可以修改源码后闭源使用。华为云也有基于OpenTiny的商业支持服务,比如技术咨询、定制开发、培训等,但这部分是可选的增值服务,开源版本本身功能完整,无需付费。
开源社区
项目在GitHub上由opentiny组织管理,包含多个仓库:
-
tiny-vue:Vue组件库主仓库
-
tiny-ng:Angular组件库
-
tiny-cli:命令行工具
-
tiny-engine:低代码引擎
-
tiny-theme:主题配置平台
社区非常欢迎贡献,你可以通过提Issue报告bug、提交Pull Request贡献代码、在Discussions参与讨论等方式加入。
学习资源
官方提供了完善的学习路径:
-
文档网站:详细的API说明和示例代码
-
在线示例:可以直接运行的代码片段
-
设计资源:Figma设计文件,方便设计师和开发对接
-
技术博客:团队成员分享的实践和原理剖析
-
B站视频:入门教程和功能演示
应用示例
某金融科技公司的信贷审批系统,原来开发一个简单的审批页面需要2天,用OpenTiny后,预置的审批流程组件配合低代码引擎,2小时就能完成。表格组件内置了排序、筛选、导出功能,原来需要手写的功能现在直接配置即可。整体开发效率提升了3倍以上。
OpenTiny常见问题
OpenTiny是由华为云和流程IT团队联合孵化并开源的前端解决方案。这个项目最初是为了满足华为内部众多企业级应用的需求,经过多年内部实践和打磨,积累了丰富的经验,然后才正式开源贡献给社区。华为作为领先的科技企业,他们在企业级软件工程方面的积累为OpenTiny的质量提供了很好的保障。
OpenTiny的官网是https://opentiny.design/ 不过需要提醒你,官网最近在进行技术维护,有时候会暂时无法访问。如果你想马上开始使用,可以直接访问它的GitHub主页https://github.com/opentiny 那里有最完整的代码仓库、文档和示例。特别是TinyVue组件库的仓库https://github.com/opentiny/tiny-vue 里面有详细的安装说明和API文档,文档本身也是在线可读的。
OpenTiny是一个企业级的前端组件库和工具集,你可以把它理解成一个“全家桶”。它和Element Plus、Ant Design的区别在于三点:第一是跨框架,它同时支持Vue和Angular,而且TinyVue还能同时兼容Vue2和Vue3,这在组件库里很少见;第二是跨端适配,一套组件能自动适应PC、平板、手机和大屏;第三是配套工具更完整,不光有组件,还有命令行工具、低代码引擎、主题配置平台。所以如果你团队技术栈复杂,或者需要兼顾多端应用,OpenTiny会特别合适。
上手实挺简单的,如果你用过他组件库,几乎零学习成本。以Vue项目为例,你只需要用npm安装@opentiny/vue,然后在main.js里导入组件库和样式,就可以在页面里直接使用了。比如
OpenTiny是免费的开源项目,采用MIT许可证,这是最宽松的开源协议之一。你可以免费用于任何商业项目,不用担心法律风险。MIT许可证允许你使用、复制、修改、合并、出版发行、散布、再授权,甚至可以用在闭源软件里。很多大公司的核心产品都在用MIT协议的开源软件,安全性是经过验证的。如果你想获得华为官方的技术支持或定制服务,那需要另外付费,但那是增值服务,不是强制性的。
这点可以放心。OpenTiny已经在华为内部多个核心系统中经过了多年的实战检验,支撑着大量企业级应用的运行。华为对软件质量的要求是出了名的严格,能够内部大规模使用说明它的稳定性和性能都达到了很高标准。开源之后,它又吸引了更多外部开发者的贡献和测试,bug修复和功能迭代更加活跃。很多金融、政务、制造领域的客户已经在生产环境中使用OpenTiny,反馈都挺正面的。
我分享几个提升开发效率的技巧。第一,善用TinyCLI命令行工具,用tiny init创建项目能自动配好代码规范、提交钩子,省去手动配置时间。第二,主题配置可以在线调整,不用每次改Less变量重新编译,设计师和开发协作更顺畅。第三,低代码引擎TinyEngine对后台系统特别有用,让业务人员直接拖拽表单,开发只需关注复杂逻辑部分。第四,表格组件的列配置支持拖拽排序、显示隐藏,这个功能可以直接开放给最终用户,减少产品经理的沟通成本。
特色的应该是一套组件同时支持Vue2和Vue3,这个设计真的解决了升级的大难题。比如你有个老项目用Vue2,新模块想用Vue3,用OpenTiny可以混用,平滑过渡。第二个特色是跨端适配,你在PC上开发的页面,到了手机上组件会自动变成移动端样式和交互,不用写两套代码。第三个是主题配置平台的在线实时预览,改完颜色立刻看到效果,还能导出主题包在不同项目复用。第四个是和华为云他服务的集成能力,如果你用华为云,整合起来会更顺畅。
OpenTiny是一个纯粹的前端组件库,它运行在用户的浏览器里,本身不会主动上传任何数据到任何服务器。所有的组件代码你都可以审查,因为是开源的。它没有任何所谓的“后门”机制。如果你使用在线主题配置平台,那调整的主题数据会经过网络,但那是明确的功能需求,而且传输过程是加密的。如果你对安全要求极高,可以把主题配置平台也私有化部署。用OpenTiny不会带来额外的数据安全风险,你的数据安全还是取决于你的后端系统和部署环境。
从我自己的使用体验来说,确实挺好用的。是文档质量很高,每个组件都有详细的示例和API说明,遇到问题很快能找到答案。是TypeScript支持完善,在VSCode里开发有完整的类型提示和自动补全,减少了很多低级错误。组件的API设计也比较合理,常用功能都有,扩展性也强。最让我喜欢的是表格组件,内置了排序、筛选、分页、虚拟滚动,以前要写很多代码的功能现在几行配置就搞定。社区响应也挺快,在GitHub提Issue一般两天内就有回复。
OpenTiny本身是开发前端应用的组件库,不是PPT制作工具,所以没有直接生成PPT的功能。不过,你可以用它开发一个在线的PPT制作工具,因为它的组件很全,比如拖拽组件、富文本编辑器、图形图表等,可以搭建一个类似PPT的创作界面。实际上已经有开发者用OpenTiny的组件快速搭建了内部用的演示文稿制作系统,专门用来生成标准格式的汇报材料。如果你只是想快速做PPT,建议还是用专业的工具,如果你想开发一个PPT工具,OpenTiny倒是很合适的。
OpenTiny是前端UI组件库,它的专长是构建用户界面,不是视频处理工具,所以不能直接生成视频。不过你可以在用OpenTiny开发的应用里集成视频相关的功能,比如视频上传、播放器界面、视频列表管理等。如果你需要做视频剪辑类的网页应用,OpenTiny提供的滑块、时间轴、按钮等组件可以帮你快速搭建操作界面。至于视频的渲染生成,那需要后端服务或专门的视频处理库来完成,前端主要负责交互界面。
OpenTiny在设计时就考虑到了性能问题,支持完整的按需加载。你可以只引入用到的组件,比如只用到了按钮和输入框,打包时只会包含这两个组件的代码,体积很小。它还支持Tree Shaking,能进一步去掉没用到的代码。经过实际测试,一个典型的后台页面如果用到了10个左右组件,gzip压缩后的额外体积在几十KB,对加载速度影响微乎微。如果你还担心,可以用TinyCLI的构建优化功能,它会自动分析依赖做打包配置。
| 分享笔记 (共有 篇笔记) |