You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue 3自定义元素无法通过原生JavaScript调用组件方法

Vue 3自定义元素无法通过原生JavaScript调用组件方法

嘿,这个问题我之前踩过坑!Vue 3 把组件打包成自定义元素的时候,默认不会把组件内部的方法直接暴露给原生 DOM 实例,得我们手动配置一下才行~

问题根源

Vue 3 的自定义元素在默认情况下,组件内部的 methods 并不会挂载到 DOM 元素实例上,主要是为了封装性考虑。所以你直接调用 el.open() 会提示方法不存在,得先把需要外部调用的方法显式暴露出来。

解决步骤

1. 在 Vue 组件中显式暴露方法

根据你用的是选项式 API 还是组合式 API,分别做如下修改:

如果是选项式 API:
在组件里添加 expose 选项,指定要暴露给外部的方法名:

export default {
  methods: {
    open() {
      console.log('Open Called')
    }
  },
  // 关键:指定要暴露的方法
  expose: ['open']
}

如果是组合式 API(

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:28:15