从Element Plus到OpenTiny:我用一周把后台管理系统重构了一遍,体积小了40%

从Element Plus到OpenTiny:我用一周把后台管理系统重构了一遍,体积小了40%

公司的后台管理系统用的是 Element Plus,一直没什么问题。直到有一天测试说"这个页面加载要 8 秒"。

我一看,好家伙,Element Plus 完整引入 + ECharts + moment.js,首屏 JS 体积直奔 2MB。用户用的还是 4G 网络。

于是决定换成 OpenTiny。一周搞定,效果出乎意料。

为什么选 OpenTiny

OpenTiny 是华为开源的前端组件库,主打企业级场景。跟 Element Plus 比:

Element Plus OpenTiny
组件数量 70+ 80+
按需引入包体积 ~400KB ~240KB
Tree Shaking 支持 原生支持
主题定制 CSS变量 CSS变量+Design Token
企业级场景 通用 内置审批流、表格增强

对我最有吸引力的三点:

  • 体积更小(树摇更彻底)
  • 表格组件更强(企业后台核心)
  • 内置了 Element Plus 没有的高级组件

迁移过程

第1天:替换依赖

bash 复制代码
npm uninstall element-plus
npm install @opentiny/vue

第2-3天:组件替换

大部分组件是 API 兼容的:

vue 复制代码
<!-- Element Plus -->
<el-table :data="list">
  <el-table-column prop="name" label="名称" />
</el-table>

<!-- OpenTiny -->
<tiny-table :data="list">
  <tiny-table-column prop="name" label="名称" />
</tiny-table>

花了 3 天把 40 多个页面过了一遍。改得最多的是自定义样式那部分,因为 OpenTiny 的 CSS 变量命名不太一样。

第4天:TinyGrid 替换表格

这是这次迁移的杀手锏。OpenTiny 的 TinyGrid 跟普通表格不是一个东西:

vue 复制代码
<tiny-grid :data="list" :columns="columns"
  :filter-config="filterConfig"
  :pager-config="pagerConfig"
  @filter-change="handleFilter"
  @page-change="handlePage">
</tiny-grid>

一个组件搞定:表格渲染、筛选、分页、排序、导出。以前要组合 5 个组件的事,现在一个就够了。

第5-7天:调样式 + 测试

主题定制用 Design Token:

scss 复制代码
:root {
  --ti-base-color-primary: #5e7ce0;
  --ti-table-header-bg-color: #f5f7fa;
}

改几个变量就统一了全站主题,比 Element Plus 的 SCSS 覆盖方便太多。

成果

指标 迁移前 迁移后
首屏JS体积 1.8MB 1.1MB (-39%)
首页加载时间 8.2s 3.1s (-62%)
Lighthouse分数 42 78
表格页代码行数 ~200行 ~80行

踩坑

  1. Dropdown 和 Popover API 差异大 --- 这两个组件接口不兼容,手动适配了一下午
  2. Form 校验规则格式不同 --- OpenTiny 用的是 async-validator 但字段名有变化
  3. Icon 组件需要单独引入 --- 不像 Element Plus 全局注册那么方便

写在最后

如果你的后台系统也在为体积和性能发愁,OpenTiny 值得一试。尤其表格密集的管理后台,TinyGrid 能省不少代码。

不需要一把梭全迁移,可以先从体积最大的页面开始切。一周差不多能搞定一个中等规模的系统。


本文参加「OpenTiny NEXT 前端智能化系列直播征文活动」

相关推荐
贝贝尔科技15 小时前
主流高密度模块化 UPS 具体型号及厂商深度解析
重构
维基框架16 小时前
GitHub重构漏洞赏金计划 向AI批量报告说不
人工智能·重构·github
小宋10212 天前
不用学算法也能玩转 AI?普通 Java 程序员转 AI 应用开发路线
java·人工智能·重构
幂律智能2 天前
滴滴 × 幂律智能,头部出行平台重构合同全生命周期管理逻辑
重构
our_times2 天前
【硬核实战】当机器人走进厨房:Java后端如何重构物联网并发与状态一致性`。
java·重构·机器人
mtheliang1232 天前
从单机到整厂——威龙科技如何用EPC总包模式重构制药与食品装备行业
科技·重构
了不起的云计算V4 天前
破局“Demo陷阱”:中国电子云以“新星”AI重构关键行业智能决策体系
人工智能·重构
栋***t4 天前
从“纸质试卷”到“AI智能组卷”,麦塔在线考试系统如何重构出题逻辑?
java·大数据·人工智能·算法·重构
煎饼学大模型4 天前
架构决定上限:Skill 知识架构的三次重构实践
java·重构·架构·skill
FII工业富联科技服务5 天前
从灯塔工厂到AI Factory新模式:AI正在重构制造业的四大核心能力
大数据·运维·人工智能·重构·ar·制造