uview-plus 是基于 uView 2.x 思路演进的 uni-app Vue3 组件库。新项目如果使用 uni-app Vue3,可以优先评估它;老的 Vue2 项目不要盲目迁移,要先确认组件差异和多端表现。
适合什么项目
| 场景 | 建议 |
|---|---|
| uni-app Vue3 新项目 | 可以优先评估 |
| 需要从 uView 2 迁移 | 逐页验证,不要直接全局替换 |
| App、H5、小程序多端 | 重点测试上传、弹窗、选择器、表单 |
| 需要 TypeScript | 建议封装业务组件,减少页面直接依赖 |
安装
1 | npm install uview-plus |
main.js 或 main.ts 中注册:
1 | import { createSSRApp } from 'vue' |
App.vue 中引入样式:
1 | <style lang="scss"> |
如果使用 uni_modules 方式导入,路径和注册方式以项目实际结构为准。
Vue3 写法示例
1 | <template> |
组件名前缀可能会随版本和配置不同出现 u-、up- 等差异,项目里要统一,不要混用。
主题配置
建议把主题变量集中到 uni.scss 或项目样式入口。
1 | $u-primary: #2979ff; |
如果项目有自己的设计规范,优先封装业务组件,不要在页面里到处写深层样式覆盖。
组件自动导入问题
uni-app 项目常通过 easycom 自动识别组件。常见问题是组件文件存在,但页面报“组件未注册”。
排查:
- 是否安装或导入到了正确目录。
pages.json或 easycom 配置是否正确。- 组件前缀是否和实际库版本一致。
- 是否重启了 HBuilderX 或 CLI 服务。
图标或样式丢失
常见原因:
- 没有引入
index.scss。 - Sass 没有配置。
- 静态资源没有被打包。
- 小程序工具缓存旧版本。
处理:
- 检查样式入口。
- 清理开发者工具缓存。
- 删除临时编译目录后重新运行。
- 真机检查字体、图标和图片资源。
Vue2 项目能不能直接用
不建议直接把 Vue2 + uView 项目迁移成 uview-plus。迁移成本包括:
- Vue2 到 Vue3 语法差异。
- 组件 API 差异。
- 表单验证差异。
- 样式变量差异。
- 多端兼容差异。
更稳的迁移方式是新旧页面并行,先迁移低风险页面,再迁移核心流程。
常见问题
validate is not a function
检查 ref 是否拿到组件实例,以及表单组件是否已经渲染。
1 | if (!formRef.value) { |
组件样式和文档不一致
确认:
- 当前安装版本。
- 文档版本。
- 是否使用了全局主题覆盖。
- 是否存在旧 uView 样式残留。
小程序端表现和 H5 不一致
这是正常现象。上传、富文本、滚动、弹层、地图、视频都需要单独真机测试。
迁移后包体积变大
处理方法:
- 删除未使用组件。
- 检查是否同时保留了 uView 和 uview-plus。
- 图片和字体资源放 CDN 或按需加载。
- 使用分包拆核心页面和低频页面。