企业后台提效利器:从零搭建 Vue3 + Element Plus 企业级业务组件库

84 阅读4分钟

背景

在前端工程化与企业级项目开发的落地过程中,前端组件库(如 Element UI、Ant Design、Vue3 Plus 等)凭借其开箱即用、组件丰富、兼容性强的特性,成为提升开发效率、降低基础开发成本的核心工具,有效解决了项目中通用 UI 组件的重复开发问题,让研发团队能更聚焦于业务逻辑的实现。本文以Element-Plus为参考,阐述组件库落地方案~

直接使用Element-Plus的痛点

1.重复开发成本高,业务组件未沉淀

在实际开发过程中发现,Element Plus 提供的是通用组件能力,项目中大量场景具有 稳定、重复、强业务特征,多个页面反复出现二次开发的代码,比如说表格列表(分页、loading、空态、异常兜底)弹窗类组件(打开/关闭逻辑、确认/取消交互)等,每个页面仍需自行编排、组合和维护这些逻辑;

2.组件升级兼容成本高,改动难以收敛

Element-Plus 组件库升级时,因缺乏统一的修改兼容入口,导致升级改造的改动点分散、改造成本高,不仅影响范围广,公共逻辑的调整也难以统一收敛,易引发全域性的适配问题。

3.主题风格陈旧,定制能力缺失

Element-Plus 组件样式风格比较旧,主题不支持定制,目前修改Element-Plus 样式需要在业务场景中使用deep穿透修改,还会受important属性影响,导致样式不生效

4.跨系统封装不统一,协作效率低

各后台系统开发过程中,通用组件需在本地单独封装实现,无统一可复用的组件基座,导致二次开发成本居高不下。

组件库的价值

1.抽象并沉淀通用业务组件,多后台管理平台使用,提升整体开发效率与可维护性,降低后台类需求开发成本

2.降低业务代码与第三方组件库Element-Plus的耦合

3.UI 与交互规范的统一(封装style层,对Element-Plus进行样式覆盖)

4.组外推广,提升团队影响力

组件的梳理规划

1.不同后台项目业务场景调研,后续梳理高频复用的业务模块,形成组件需求清单;

2.明确各组件的功能范围、交互逻辑与 UI 规范,制定组件开发优先级;

组件库架构

系统架构图.png

这主要阐述一下style层,style层主要对Element-Plus进行样式覆盖(如果你的后台系统对样式有较高的要求),我们在monorepo中提供了style包, 项目中我们导入style包,那么就是覆盖后的样式,如果没导入样式包,那么就是Element-Plus本来的样式~;当然了,如果你们的后台系统对UI没有要求,那么样式层style也就没有了存在的价值

项目的结构

项目地址:Github地址

项目介绍:

  1. node >= 20, pnpm管理
  2. 项目采用monorepo的架构,packages管理components、utils、styles子包
  3. 采用rollup打包工具,对比vite更轻量、更灵活
  4. prettier、 eslint、 husky、lint-staged等工具做代码风格检查
  5. 组件的单元测试,采用vitest测试框架(element-plus源码也使用vitest),也可选择其他测试框架
  6. npm发包测试, 执行不同的publish,本项目发布到的是npm,私密开发可以发布包到自己平台 image.png
  7. example文件夹,展示上述components组件,开发自测使用,也可以考虑storybook

项目详情就不一一介绍了,可以参考项目源码,项目搭建的是整体的一套流程以及一些工程化配置,一些细节后续优化~

六、组件的开发与测试

按照规划优先级,依次完成核心业务组件的开发,高频组件 -> 低频

测试环境发beta包验证,测试通过后发正式包,上线使用正式包

组件单测:vitest

七、文档与平台建设

编写组件库使用文档,包括组件 API 说明、示例代码、接入指南等;搭建组件演示平台,方便开发人员查看、测试与使用组件;参考文档平台:vitepress

八、落地迭代

1.在项目内各后台系统逐步推广组件库的使用,收集开发人员反馈;

2.根据业务需求变化与反馈意见,持续优化组件功能

九、总结

业务组件库的建设是提升项目开发效率、统一技术规范、降低维护成本的关键举措,同时也是团队技术沉淀与能力输出的重要载体。后续将严格按照本文档规划,推进组件库的设计、开发与推广工作,确保其充分发挥价值,助力项目高质量发展。

原创不易~, 如果对你有帮助,帮忙点赞、收藏、关注~