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

Laravel+Inertia(Vue3)全局注册Link组件不生效问题咨询

问题原因

你在app.js中全局注册组件时指定的名称为InertiaHead和InertiaLink,但页面模板里仍然使用<Link>、<Head>标签调用组件,Vue无法匹配到对应的组件定义,因此无法正常渲染内容。Vue3默认会将未注册的自定义标签识别为原生自定义元素,不会抛出明确的组件未注册错误,所以你看不到报错提示。

解决方法

你可以任选以下一种方案修改:

  • 方案1:保留现有全局注册配置,将页面模板中的标签改为你注册的名称即可,也就是把<Link>替换为<InertiaLink>,<Head>替换为<InertiaHead>。
  • 方案2:修改app.js中的全局注册代码,将组件名改为你模板中正在使用的名称,对应调整setup部分的代码:
setup({ el, app, props, plugin }) {
  createApp({ render: () => h(app, props) })
    .use(plugin)
    // 修改注册的组件名为你模板里用的Head、Link
    .component("Head", Head)
    .component("Link", Link)
    .mixin({ methods: { route } })
    .mount(el);
}

修改完成后重新编译前端资源,后续所有页面都可以直接使用<Head>、<Link>标签,无需单独导入注册。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:45:07