沉冰
沉冰
  • 发布:2024-08-07 16:56
  • 更新:2025-04-07 08:50
  • 阅读:618

使用分包异步化,如何调用异步组件的方法?

分类:uni-app

小程序需要做分包异步化,避免主包代码过多

当前采用的方式是在pages.json的页面style中增加usingComponent和componentPlaceholder实现的,并且在对应的分包中,将组件也作为页面写在对应的pages中

组件能够正常的在小程序中显示出来,并且如果是组件内部触发方法,也能够触发到父页面的对应方法

但是无法拿到对应组件的实例,为组件设置了ref后,无法拿到对应组件,就无法去调用子组件的方法了

比如我定义了一个倒计时组件,组件时间完成后能够正常通知页面
另外还有一个自定义弹窗的组件,想去调用其内部的方法,但是无法通过ref获取到组件

如何能获取到异步加载的组件?或者是能调用其内部的方法

2024-08-07 16:56 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

我看你那似乎使用ref的getRef定义成了一个函数,你直接使用getRef不能实现吗?

  • 沉冰 (作者)

    直接使用不行

    换成了方法也不行

    2024-08-08 08:39

  • DCloud_UNI_yuhe

    回复 沉冰: 贴一下你直接使用时候的代码

    2024-08-08 10:44

  • 沉冰 (作者)

    回复 DCloud_UNI_yuhe: 图片发在下面的回复里了

    2024-08-08 14:36

沉冰

沉冰 (作者)

直接使用ref时也不行

  • DCloud_UNI_yuhe

    当需要在 vue 组件中使用小程序组件时,注意在 pages.json 的 globalStyle 中配置 usingComponents,而不是页面级配置。


    你是不是在组件中引用的,尝试下在globalstyle处引用

    2024-08-08 14:49

  • 沉冰 (作者)

    回复 DCloud_UNI_yuhe: 仍然不行,而且会编译报错,图片贴在下面了。

    上面的倒计时组件可以正常使用,编译也是对的。页面向组件内传参和组件调用组件上绑定的方法是可以的。

    主要就是ref无法拿到组件节点

    2024-08-08 15:16

沉冰

沉冰 (作者)

修改到了globalStyle中,编译后直接报错,原因是编译后的componentPlaceholder位置错误

小_c

小_c

各位大佬,有没有别的办法,同遇到这个问题。

1***@qq.com

1***@qq.com

同问,异步组件获取不到实例,调用不了异步组件的函数

要回复问题请先登录注册