见描述
- 发布:2022-01-24 19:24
- 更新:2022-01-24 20:54
- 阅读:455
产品分类: 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>
chenstarx (作者)
你再检查一下,用 script setup 引入的组件并没有出现在小程序页面 json 的 usingComponents 中,导致组件实际上并没被注册
2022-01-26 11:08
DCloud_UNI_Anne
回复 chenstarx: 查看正常,请升级至HBuilderX3.3.10试下
2022-01-26 14:26
chenstarx (作者)
回复 DCloud_UNI_Anne: 还是不行,HbuilderX和cli都试过了,这个问题是父组件用script setup去import子组件,导致子组件未渲染。刚试了下如果之前项目运行过的话,这个bug不会复现,得在全新项目中运行才能复现。
2022-02-21 14:07
DCloud_UNI_Anne
回复 chenstarx: 请提供简单可复现的完整示例(上传附件),方便我们快速排查问题哦。
2022-02-22 17:31