uView配置失败主因是easycom未配对、rules未正确传入或@import未置顶且缺lang="scss";Vue2需Vue.use(uview-ui),Vue3须createSSRApp().use(uview-plus)并前置;校验需响应式rules及显式调用validate()。

App.vue 里 @import 没写在第一行,或者 lang="scss" 缺失。
easycom 配置失效:组件标签识别不了
-
pages.json中的easycom必须是根级字段,不能嵌在"h5"、"mp-weixin"或"subNVues"下面 - Vue2 项目(
uview-ui)规则必须严格写成:"easycom": { "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" } - Vue3 项目(
uview-plus)规则是:"easycom": { "^u-(.*)": "uview-plus/components/u-$1/u-$1.vue" } - 路径里的斜杠必须是正斜杠
/,Windows 复制反斜杠\会导致匹配失败 - 修改后必须重启 HBuilderX 或重新运行
npm run dev:mp-weixin,热更新不触发 easycom 扫描 - 验证方式:临时删掉
easycom配置,立刻变白屏且控制台无报错 → 说明之前配对成功
main.js 或 main.ts 注册失败:Vue.use is not a function
- Vue2 项目:确保
import uView from 'uview-ui'和Vue.use(uView)写在new Vue(...)之前,且路径必须是'uview-ui'(不是@/uni_modules/uview-ui,那是下载导入方式) - Vue3 + Vite 项目:不能用
Vue.use(),必须用createSSRApp().use(),且app.use(uViewPlus)要放在所有其他插件(如pinia、i18n)之前 - 常见错误:装了
uview-plus却按 uView 2.x 文档写import uView from 'uview-ui'→ 报Cannot find module 'uview-ui' - 检查
node_modules下是否存在对应文件夹,不存在就重装,别信缓存
样式不生效或全局错乱:App.vue 和 uni.scss 的顺序和属性
-
App.vue的标签内,@import "uview-ui/index.scss"(Vue2)或@import "uview-plus/index.scss"(Vue3)必须是第一行内容,前面不能有空行、注释、空格 -
lang="scss"属性缺一不可,漏写会导致整个@import被忽略 -
uni.scss中的@import 'uview-ui/theme.scss'是可选的,只影响变量(比如$u-primary-color),删掉不影响组件结构样式 - 如果你自定义了 scss 变量,要确保
uni.scss在编译时先于App.vue加载(uni-app 默认如此,但手动改过构建配置可能破坏顺序)
u-form 校验静默失败:明明写了 rules 却不报错
-
rules必须是响应式对象(Vue2 用data()返回,Vue3 用ref({})或reactive({})),直接写const rules = {...}不会响应 - 必须显式调用
formRef.value.validate(),不能只靠blur或change自动触发(除非你开了autoValidate且绑定了正确事件) -
validate()返回 Promise,建议用try/catch捕获校验失败结果,而不是只看控制台 - 字段名(
name)必须和rules对象的 key 完全一致,包括大小写和中划线,例如对应rules: { user_name: [...] }
真正卡住人的地方,往往不是“该不该用”,而是 easycom 那个正则少了个 u-,或是 App.vue 里多了一行空格。











