最新版本v1.0.8
迁移指南
本文面向准备从旧版本 YH-UI、其他 Vue 组件库或自研组件迁移到 YH-UI 的团队。建议先在一个业务模块中完成试点,再逐步扩大到全站。
迁移前评估
迁移前先建立清单:
- 当前使用的组件、二次封装和全局样式覆盖。
- 主题变量、品牌色、暗色模式和字体设置。
- 表单校验、弹层、消息、通知、表格和上传等高频能力。
- Nuxt、SSR、自动导入、按需引入、打包体积等工程约束。
- 仍在使用但缺少 owner 的历史页面。
安装与基础替换
安装依赖:
bash
pnpm add @yh-ui/yh-ui在应用入口引入:
ts
import { createApp } from 'vue'
import YhUI from '@yh-ui/yh-ui'
import '@yh-ui/yh-ui/css'
import App from './App.vue'
createApp(App).use(YhUI).mount('#app')Nuxt 项目优先使用 YH-UI Nuxt 模块,避免手动维护服务端和客户端两套注册逻辑。
推荐迁移顺序
- 基础样式和 Token:先接入
@yh-ui/yh-ui/css,恢复品牌色、字体、圆角、暗色模式。 - 低风险展示组件:Button、Icon、Tag、Badge、Card、Alert。
- 表单控件:Input、Select、DatePicker、Checkbox、Radio、Form。
- 弹层反馈:Message、Notification、Dialog、Drawer、Tooltip、Popover。
- 复杂业务组件:Table、Upload、Tree、Transfer、Flow、AI Components。
- 删除旧组件适配层和无用样式覆盖。
从其他组件库迁移
命名差异
YH-UI 组件使用 Yh 前缀和 kebab-case 标签:
vue
<yh-button type="primary">保存</yh-button>
<yh-input v-model="keyword" clearable />如果项目已有自研封装,建议先保留业务组件名,在内部替换为 YH-UI,减少一次性改动面。
主题差异
不要直接复制旧组件库的 class 覆盖。优先映射为 YH-UI Token:
css
:root {
--yh-color-primary: var(--brand-primary);
--yh-radius-base: 6px;
--yh-font-family: var(--app-font-family);
}表单差异
迁移表单时先确认:
v-model字段名和初始值是否一致。- 校验触发时机是否需要从
change调整为blur或手动触发。 - 错误信息是否仍出现在字段附近。
- 禁用态、只读态、清空按钮和前后缀插槽是否完整迁移。
发布策略
推荐使用灰度迁移:
- 每次只迁移一个业务域或一组组件。
- 为迁移模块建立视觉截图或 Playwright smoke。
- 在 Storybook、docs playground 或内部页面中保留对照示例。
- 遇到 API 缺口时优先通过业务封装适配,再评估是否向 YH-UI 提交能力。
验收清单
pnpm typecheck通过。pnpm lint通过。- 关键页面 SSR 或 Nuxt 预览通过。
- 表单提交、弹层关闭、消息通知、路由切换、暗色模式均已验证。
- 迁移模块不再依赖旧组件库样式。