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

5 回复

未复现此问题。可以提供简单可复现的完整示例(上传附件)吗?方便我们快速排查问题哦。

更多关于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: 请提供简单可复现的完整示例(上传附件),方便我们快速排查问题哦。

回到顶部