uni-app小程序使用 script setup 编译后组件未注册
uni-app小程序使用 script setup 编译后组件未注册
| 项目 | 内容 |
|---|---|
| 产品分类 | uniapp/小程序/微信 |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.3.9 |
| 第三方开发者工具版本号 | 最新 |
| 基础库版本号 | 最新 |
| 项目创建方式 | HBuilderX |
操作步骤
见描述
预期结果
见描述
实际结果
见描述
bug描述
试了一下 script setup 编译成小程序后能运行,但是引入的组件没有被正常编译注册
比如 vue3 官方的一个示例:
<script setup>
import MyComponent from './MyComponent.vue'
</script>
<template>
<MyComponent />
</template>
如果编译成 H5,MyComponent 是被正常注册的,但是编译成小程序后这个组件未被注册
大概排查了一下,发现原因是编译后组件没有被注册到该页面对应的 JSON 中
/* 目前编译后的内容 */
"usingComponents": {}
/* 期望的编译内容 */
"usingComponents": {
"my-component": "../../components/MyComponent"
}
这个编译问题解决后小程序下就能正常使用 script setup 了
附:我目前的兼容方案是手动再加一个 script 模块,然后在 components 里注册组件
<script>
import MyComponent from '@/components/MyComponent';
export default {
components: {
MyComponent
}
};
</script>
更多关于uni-app小程序使用 script setup 编译后组件未注册的实战教程也可以访问 https://www.itying.com/category-93-b0.html
未复现此问题。可以提供简单可复现的完整示例(上传附件)吗?方便我们快速排查问题哦。
更多关于uni-app小程序使用 script setup 编译后组件未注册的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你再检查一下,用 script setup 引入的组件并没有出现在小程序页面 json 的 usingComponents 中,导致组件实际上并没被注册
回复 chenstarx: 查看正常,请升级至HBuilderX3.3.10试下
回复 DCloud_UNI_Anne: 还是不行,HbuilderX和cli都试过了,这个问题是父组件用script setup去import子组件,导致子组件未渲染。刚试了下如果之前项目运行过的话,这个bug不会复现,得在全新项目中运行才能复现。
回复 chenstarx: 请提供简单可复现的完整示例(上传附件),方便我们快速排查问题哦。

