t***@huanlong.me
t***@huanlong.me
  • 发布:2025-04-15 10:57
  • 更新:2025-04-15 14:23
  • 阅读:97

【报Bug】微信小程序内Vue3组件defineEmits的自定义事件父组件无法监听到事件回调

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: Apple M2 MacOS 14.5 (23F79)

第三方开发者工具版本号: 微信开发工具 - Stable 1.06.2412050

基础库版本号: 3.7.12

项目创建方式: CLI

CLI版本号: 3.0.0-4050520250307001

示例代码:

子组件 verify-smc-popup.vue

<template>  
    <view class="verify-smc-popup"></view>  
</template>  

<script setup>  
const emit = defineEmits(['success']);  

function verify(code) {  
  // console.log('verify123', code);  
  emit('success', { code });  
}  
</script>

父组件 index.vue

<template>  
<VerifySmcPopup business-type="1"  @success="onVerifySuccess" />  
</template>  

<script setup>  
import VerifySmcPopup from './verify-smc-popup.vue';  

function onVerifySuccess(data) {  
  // 问题点:没有执行  
  console.log('onVerifySuccess', data);  
}  
</script>

操作步骤:

随便引用Vue3 组件,在上述环境中使用自定义事件进行父子通信,可以稳定复现

预期结果:

支持Vue3小程序build后通过自定义事件父子通信

实际结果:

小程序build后父组件监听后没有执行回调,其他环境正常,dev也正常

bug描述:

我们有几个App中的Vue3组件拿来在小程序复用,dev命令跑小程序时没啥问题,build发体验版小程序后测试发现有问题,经过排查,问题有2点:

  1. 子组件emit的自定义事件,父组件监听后无法正常执行回调,一点反应没有,检查了Vue3语法没问题,同样的代码只有小程序build出来有问题,可以稳定复现
  2. 有一个子组件的emit甚至莫名其妙执行了父组件内毫不相关的方法(部分组件)

目前我们在微信小程序内用uni.$emit代替了父子组件通信

2025-04-15 10:57 负责人:无 分享
已邀请:
DCloud_UNI_JBB

DCloud_UNI_JBB

我测试下

DCloud_UNI_JBB

DCloud_UNI_JBB

我刚刚跑了一个demo,父子组件通信正常触发了

  • t***@huanlong.me (作者)

    试试父组件也用setup呢

    2025-04-15 11:36

  • t***@huanlong.me (作者)

    用cli的 build:mp-weixin 试试,dev:mp-weixin 是好的

    2025-04-15 11:37

  • DCloud_UNI_JBB

    回复 t***@huanlong.me: 我试下

    2025-04-15 11:46

DCloud_UNI_JBB

DCloud_UNI_JBB

组件都使用了setup,用的是cli的 build:mp-weixin,没有复现你说的问题

  • t***@huanlong.me (作者)

    辛苦了,我重新创建Demo项目再试试

    2025-04-15 13:51

  • DCloud_UNI_JBB

    回复 t***@huanlong.me: 我贴个demo给你吧

    2025-04-15 14:21

DCloud_UNI_JBB

DCloud_UNI_JBB

可以看下这个附件

  • t***@huanlong.me (作者)

    好的

    2025-04-15 15:16

  • t***@huanlong.me (作者)

    你的demo我跑了确实没问题,感谢,后续我们自己再往分包和uni-simple-router这两个方向去排查

    2025-04-15 15:51

要回复问题请先登录注册