从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 前端智能化系列直播征文活动」

相关推荐
人工智能培训4 小时前
大模型驱动下传统大数据架构的变革方向
大数据·人工智能·重构·架构·agent·agi
带娃的IT创业者1 天前
深度解析:当 AI 代理拥有人格——重构软件开发协作模式
人工智能·重构·大模型·软件开发·人机协作·ai代理·多代理协作
Omics Pro1 天前
Agentic AI正在重构整个生物信息学工作流
大数据·数据库·人工智能·机器学习·语言模型·自然语言处理·重构
林中青木2 天前
CT重构原理及C++代码实现
c++·计算机视觉·重构
2501_911067662 天前
乡村振兴 + 零碳民生稿:叁仟光伏智慧灯杆,点亮杭州共富乡村绿色数字路
人工智能·5g·重构·生活·智慧城市
小柒儿3362 天前
量子通信产业化:从保密通信到全域应用,重构信息安全底层体系
人工智能·重构
AI科技星2 天前
公理化数学化学|48小时确权终稿(完整投产包)
人工智能·数学·算法·重构·拓扑学·乖乖数学·全域数学
AI科技星2 天前
基于超复数广义分形流形的电磁耦合与缪子反常磁矩几何理论
开发语言·平面·重构·概率论·量子计算·乖乖数学·全域数学
万悉科技3 天前
实战:如何通过GEO原生内容结构化,让LLM稳定推荐你的品牌网站
大数据·人工智能·重构
数据百晓通3 天前
重构数据治理范式:2026 主流企业级数据治理平台对标与精准选型
大数据·人工智能·重构