l***@icloud.com
l***@icloud.com
  • 发布:2024-11-28 17:22
  • 更新:2024-11-29 10:23
  • 阅读:206

uniapp cli vue3+vite+ts 编译为微信小程序后,使用index文件重新导出组件的写法,导致无法找到组件

分类:uni-app

uniapp cli vue3+vite+ts 编译为微信小程序后,使用index文件重新导出组件的写法,导致无法找到组件

2024-11-28 17:22 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

因为 vue 中的组件,通常导出的时候,都是 export default 而不是,export const 这种

  • l***@icloud.com (作者)

    在components/index.ts 中 export { default as Test11 } from "./test/test11.vue";

    而 test11.vue 写法为 setup 组合式api


    然而导入@/components 后,组件无法使用,test11 也没有用const导出呀

    2024-11-28 17:49

  • l***@icloud.com (作者)

    可以试着跑下我上传的代码,h5,app平台这种写法就支持,在微信小程序内不行,我看了编译后的文件,只有wxml,没有对应的 js,json,wxss 文件。如果直接引入 import Test from '@/components/test11/test11.vue' ,这样是能渲染出来的,编译后的文件也有对应,js,wxss,wxml,json

    2024-11-28 17:52

  • DCloud_UNI_yuhe

    回复 l***@icloud.com: 组合式 api,只是个语法糖,实际的是这样


    <script>

    export default {

    setup(){

    }

    }

    </script>


    <script setup>

    </script>

    2024-11-28 18:01

  • l***@icloud.com (作者)

    回复 DCloud_UNI_yuhe: 改成export default 实际上是一样的效果,无法使用该组件;和组合式API的写法无关,经过多次测试,通过component/index.ts(内容 export { default as Test1 } from './test1.vue';) 统一导出后,在pages/index/index.vue导入就会无法使用(内容 import { Test1 } from '@/components' ),如果使用组件具体地址就导入可以使用(内容 import Test1 from '@/components/test1.vue' )

    2024-11-28 23:30

zZZ1Ma

zZZ1Ma

// components/test/index.ts  
export * as Test from './test.vue'  
// do something  
export const TEST = 'test'  

// pages/index/index  
import { TEST } '@/components/test' // 不能导入Test组件,只能让easycom自动导入
  • zZZ1Ma

    components/test/tses.vue符合easycom没必要再统一导出

    2024-11-29 10:24

  • l***@icloud.com (作者)

    我也发现了,import { TEST } '@/components/test' // 不能导入Test组件,编译成微信小程序不能导入组件,这种方式编译后在对应目录只有wxml,准备全部修改成easycom

    2024-11-29 10:26

  • l***@icloud.com (作者)

    回复 zZZ1Ma: 当时全部导出是为了vscode的代码提示和语义识别,现在项目差不多完成,得全部改回来,好坑啊,选型的时候也确定没有小程序的需求,就没有考虑那么多

    2024-11-29 10:29

  • zZZ1Ma

    回复 l***@icloud.com: vscode能自动导入啊,我这样写是为了处理同目录下有不同组件的情况,例如

    components/button录下有button、iconButton、textButton等组件,需要在components/button/index.ts统一导出

    2024-11-29 10:36

  • l***@icloud.com (作者)

    回复 zZZ1Ma: 你这样挺好的

    2024-11-29 11:30

要回复问题请先登录注册