从 Element Plus 迁移
Element Plus 与 Uniboot UI 都是 Vue 3 组件库;Uniboot UI 由 Element Plus 衍生,组件 API、设计与 Element Plus 大体一致。从 Element Plus 迁到 Uniboot UI 时,主要是替换依赖与命名前缀(element-plus → uniboot-ui,El / el- → U / u-)。
与之不同,Element Plus 官方「从 Element UI 迁移」面向的是旧版 Element UI(Vue 2) 迁到 Element Plus(Vue 3)。若你的项目仍停留在 Element UI,需要先完成那条路径里的 Vue 与组件库升级;若要把最终目标定为 Uniboot UI,可把文档中的「Element Plus」理解为「Uniboot UI」,并在完成后按本文「从 Element Plus 迁入」做一次包名与前缀替换。
仍在使用 Element UI / Element 2.x 时,也可参考讨论:从 Element 2.x 升级到 Vue 3 组件库。
从 Element Plus 迁入
1. 依赖
卸载 element-plus(及若仅为其服务的 @element-plus/icons-vue 等),安装 uniboot-ui 与图标包(按需):
pnpm remove element-plus @element-plus/icons-vue
pnpm add uniboot-ui @uniboot/icons-vue版本与浏览器、Sass 等要求见 安装。
2. 全局注册与样式入口
- import ElementPlus from 'element-plus'
- import 'element-plus/dist/index.css'
+ import UnibootUI from 'uniboot-ui'
+ import 'uniboot-ui/dist/index.css'
- app.use(ElementPlus)
+ app.use(UnibootUI)3. 组件与指令命名
模板中 标签名由 el-* 改为 u-*,脚本中 组件类名由 El* 改为 U*:
| Element Plus(示例) | Uniboot UI |
|---|---|
<el-button> | <u-button> |
ElButton | UButton |
ElMessage / ElMessageBox | UMessage / UMessageBox |
ElLoading 等服务式 API | 对应 ULoading 等(见各组件文档) |
按需解析时,将 ElementPlusResolver 换为 UnibootUIResolver,并从子路径 uniboot-ui/resolver 引入(与 published 包一致);配置项含 importStyle、directives 等与官方 ElementPlusResolver 类似。详细步骤见 快速开始。
4. 类型与 IDE
使用 Volar 时,全局类型由:
- "types": ["element-plus/global"]
+ "types": ["uniboot-ui/global"]5. 图标
图标包使用 @uniboot/icons-vue;按需解析器中 UIcon* 会解析到该包(与 Element Plus 侧 ElIcon + @element-plus/icons-vue 对应)。
6. 样式与主题
主题变量、SCSS 覆盖方式与 Element Plus 相近,具体见 主题。若此前覆盖了 element-plus/theme-chalk,请改为指向本库发布的 theme-chalk 路径(以实际安装目录为准)。
从 Element UI(Vue 2)迁入
需要先完成 Vue 2 → Vue 3 以及 Element UI → Vue 3 组件库(Element Plus 或 Uniboot UI) 的升级;若中间经过 Element Plus,最后再按本文「从 Element Plus 迁入」迁到 Uniboot UI 即可。也可在安装 Vue 3 组件库时直接选用 Uniboot UI,省去二次替换。可配合社区工具做代码辅助转换:
- GoGoCode Element 插件:面向由 Element UI 到 Vue 3 组件库的迁移;维护方曾在 Vue Element Admin 等模板上验证,示例转译仓库见 gogocodeio/vue-element-admin。
工具产出仍可能需手工调整。若最终选用的是 Element Plus,之后若要换成 Uniboot UI,请再执行「从 Element Plus 迁入」中的依赖与 El → U、el- → u- 替换;若已直接接入 Uniboot UI,则只需保证迁移工具与手工修改都按 U / u- 命名即可。
使用 Vue 3 兼容构建(@vue/compat)时
在启用 Vue 3 Migration Build 的项目中,部分组件依赖 Vue 3 内部能力,可能与兼容层冲突。建议将 compatConfig 设为 MODE: 3(全局或在问题组件上),再逐步消除对兼容构建的依赖。详见官方 迁移构建说明。