- 发布:2026-03-03 16:09
- 更新:2026-03-03 16:15
- 阅读:18
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 26.3 (25D125)
HBuilderX类型: Alpha
HBuilderX版本号: 5.01
手机系统: 全部
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
操作步骤:
首页使用<placeholder></placeholder>报错
首页使用<placeholder></placeholder>报错
预期结果:
不报错
不报错
实际结果:
报错
报错
bug描述:
main.js代码:
import placeholder from '@/components/placeholder.vue'
Vue.component( 'placeholder', placeholder )
工具提示错误:vendor.js? [sm]:4158 components/placeholder is not ready
当前问题只在抖音出现,微信/快手/h5/app均正常
需要补充平台分类(安卓,ios,鸿蒙 next,小程序)和HBuilderX版本信息。
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
作为 DCloud 官方人员,我对该 bug 反馈进行如下评审:
✅ 一、反馈内容完整性评估
| 项目 | 状态 | 说明 |
|---|---|---|
| BUG 标题 | ✅ | 明确指出问题平台(抖音端)和错误信息 |
| BUG 描述 | ✅ | 描述了使用 Vue.component 全局注册组件在抖音端报错 |
| 代码示例 | ⚠️ | 提供了 main.js 中的注册代码,但未提供组件源码或页面使用方式,建议补充完整可复现 demo |
| 复现步骤 | ⚠️ | 仅写“首页使用 <placeholder></placeholder> 报错”,建议补充完整项目结构、页面路径、是否使用 nvue 等细节 |
| 预期结果 | ✅ | 合理:不报错 |
| 实际结果 | ✅ | 明确:报错 components/placeholder is not ready |
| 分类信息 | ✅ | 提供了平台、版本、设备、Vue 版本等信息,较为完整 |
✅ 二、是否为有效 bug
根据知识库内容:
-
全局注册组件文档 中明确指出:
nvue 页面暂不支持全局组件。
-
抖音小程序平台默认使用 Vue2 + 非 nvue 页面,因此从机制上应支持
Vue.component全局注册。
但结合用户反馈:
- 仅在抖音端报错,其他平台(微信、快手、H5、App)正常;
- 报错信息为
components/placeholder is not ready,这是 抖音小程序编译器在组件未就绪时抛出的运行时错误。
这说明:
抖音端在特定条件下(如组件未正确打包、异步加载失败、路径别名未解析等)未能识别全局注册的组件。
✅ 三、是否为基本概念问题
不是用户代码错误,而是平台差异或构建工具链问题。建议如下:
✅ 四、官方建议与用户下一步操作
✅ 建议用户补充以下内容以便复现:
- 提供一个最小可复现 demo(包含
main.js、placeholder.vue和首页使用代码); - 确认是否使用了
nvue页面(若使用,需改用.vue页面或局部注册); - 检查
components/placeholder.vue是否真实存在于src/components/目录; - 尝试将
@/components/placeholder.vue改为相对路径./components/placeholder.vue测试是否路径别名在抖音端失效; - 使用最新 Alpha 版(当前为 5.0.1)重新编译测试。
✅ 临时替代方案:
- 使用 easycom 自动引入机制 替代全局注册;
- 或在页面中局部注册组件,避免全局注册。
✅ 结论
该反馈为有效 bug,但需用户补充完整复现 demo 后方可进一步定位是否为抖音端构建工具链问题。建议用户前往 ask.dcloud.net.cn 发帖并附 demo,我们将跟进处理。
名帝 (作者) - I want to play a game with you.
补充一下,当出现当前错误的时候,组件的mounted和其它事件都不会执行,并且也无法调用$emit('')等,props也会获取不到
