宇林
宇林
  • 发布:2024-07-12 16:45
  • 更新:2024-07-16 11:41
  • 阅读:212

【报Bug】vue3 自定义组件会触发onLoad页面生命周期,但是不会触发onReady页面生命周期

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 4.23

手机系统: Android

手机系统版本号: Android 13

手机厂商: 小米

手机机型: Redmi Note 12T Pro

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

onLoad((option) => {
console.log(11111, option)
})
onReady(() => {
console.log(333333)
})

操作步骤:

在页面中使用自定义组件,组件引用onLoad、onReady生命周期,console.log打印日志

预期结果:

日志都不会打印

实际结果:

onLoad打印出日志,onReady不打印

bug描述:

vue3 中使用自定义组件会触发onLoad页面生命周期,但是不会触发onReady页面生命周期

2024-07-12 16:45 负责人:BFC 分享
已邀请:
BFC

BFC

组件不支持onReady事件,只有页面支持onReady。

建议组件使用 onMounted的事件来代替onReady 逻辑

  • 宇林 (作者)

    我知道啊,这个是正常的啊,onLoad不应该和onReady一样的吗?但是onLoad执行了

    2024-07-16 09:30

  • BFC

    回复 宇林: 收到,我这边排查一下

    2024-07-16 10:41

BFC

BFC

排查了一下, 目前vue3组合式是注册时就会触发 onShow 和 onLoad 函数。 这是为了让组件监听到页面的生命周期。 后续会优化一下相关文档。

  • 宇林 (作者)

    好的,因为有路径传参,原本想使用onLoad是否触发判断该文件是作为组件还是页面,发现无论作为组件还是页面onLoad都会触发,所以认为是bug,已经改用onReady+defineProps来判断

    2024-07-16 13:24

要回复问题请先登录注册