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

TS Vue项目使用v-video-embed出现_c未定义及类型声明错误求助

问题解决方案

错误1根因

_c是Vue 2.x专属的内部渲染函数别名,该报错出现的核心原因是v-video-embed组件仅适配Vue 2.x,与你项目的Vue版本不兼容,或组件注册时机错误。

分场景解决方法

若你的项目使用Vue 3.x

有两种可行方案:

  • 方案1:换用适配Vue 3的同类型视频嵌入组件,无需额外兼容成本
  • 方案2:手动修改组件适配Vue 3:
    1. 将v-video-embed的源码拷贝到你项目的组件目录下,替换所有代码中this._c调用为Vue 3的h渲染函数
    2. 调整组件导出格式为Vue 3插件规范:
    import type { App } from 'vue'
    import AdjustedVideoEmbed from './调整后的组件文件路径'
    
    export default {
      install(app: App) {
        app.component('VideoEmbed', AdjustedVideoEmbed)
      }
    }
    
    1. 在入口文件中按Vue 3的方式注册:
    import { createApp } from 'vue'
    import App from './App.vue'
    import Embed from './调整后的插件导出文件路径'
    
    const app = createApp(App)
    app.use(Embed)
    app.mount('#app')
    

若你的项目使用Vue 2.x

检查两个配置即可:

  • 必须在new Vue()实例化之前执行Vue.use(Embed),不能在实例创建完成后再注册组件
  • 确认项目引入的是包含编译器的Vue完整版本,不能仅使用运行时版本,该组件依赖模板编译能力

类型声明优化

你已经手动添加的declare module 'v-video-embed';可以解决类型报错,若需要更完善的类型提示,可以补充声明内容:

// Vue 2 项目补充声明
declare module 'v-video-embed' {
  import type { PluginObject } from 'vue'
  const Embed: PluginObject<any>
  export default Embed
}

内容的提问来源于stack exchange,提问作者Muhammad Islam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:36:04