Vue.js &引用;未知的自定义元素:<;路由器链路>&引用;升级到Vue 2

Vue.js &引用;未知的自定义元素:<;路由器链路>&引用;升级到Vue 2,vue.js,vue-router,Vue.js,Vue Router,从vue 1和vue路由器0.7升级应用程序,并在控制台中获取此错误 [Vue warn]:未知自定义元素:-您是否正确注册了组件?对于递归组件,请确保提供“name”选项。 (在组件中找到…[在中调用组件的路径] 如果我使用地址栏导航到它们,路由本身工作正常,只是路由器链接组件不是什么东西 有什么想法吗?您没有使用Vue初始化路由器。请使用。您需要执行以下操作: import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(

从vue 1和vue路由器0.7升级应用程序,并在控制台中获取此错误

[Vue warn]:未知自定义元素:-您是否正确注册了组件?对于递归组件,请确保提供“name”选项。 (在组件中找到…[在中调用组件的路径]

如果我使用地址栏导航到它们,路由本身工作正常,只是
路由器链接
组件不是什么东西


有什么想法吗?

您没有使用
Vue初始化路由器。请使用
。您需要执行以下操作:

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)
参考:

编辑:评论1和2之后的更多想法:

您正在使用
$mount('.container')
挂载应用程序。虽然这可以按预期工作,但使用类选择器是有风险的。您确定只有一个
元素吗?您可以尝试使用id选择器,其使用方式要简单得多,就像在文档中一样:

new Vue({
    el: "#app",
    router: router,
    render: h => h(App)
})

虽然这与
路由器链接不可用无关,但如果您有多个
容器
元素,我怀疑可能存在多个Vue实例。除上述内容外,我找不到代码有任何其他错误。

也许在更新Vue路由器时出现了问题,您是否确实使用了e正确的版本?请尝试从项目根目录中运行
npm list vue router
,它将输出2.0.x版本:

vue-router@2.0.3

任何小于v2的都不会有路由器链接,如果是这种情况,请尝试:

npm uninstall vue-router
npm install vue-router --save-dev

如果版本正确,则可能值得简化项目以解决此问题。我做了一个小动作:


如果您从这个基本设置跨html&js进行复制,它是否解决了问题?如果是,可能是您的另一个
Vue.use()
plugin configs正在破坏vue路由器。

对于任何使用Jest且不想在
路由器链接附近进行任何测试的人来说,
-但想要消除编译错误-只需将其剔除:

    wrapper = shallowMount(Flow, {
        propsData: {},
        mocks: {},
        stubs: ['router-view'], // add this
        store,
        localVue,
    });

抱歉,我没有提到这一部分,因为这是样板文件。它就在那里,正如我所说,路由器本身正在工作。我可以使用URL导航,它加载正确的组件。就在我尝试在模板中使用路由器视图组件时,我遇到了这个问题。
Vue。use
调用
安装
meth插件的od为。vue路由器的安装方法包含行
vue.component('router-link',link)
在定义
路由器视图之后
。因此,
路由器链接
应该得到定义并可用。如果我能在您修改的问题中找到其他问题,我会回来的。使用id选择器只是为了安全,但正如您所说,没有区别。谢谢您的尝试。您的意思是什么:路由器链接组件不是一个东西?我想nk你说得对。Johnathan提到他最近升级到了Vue2。所以他也需要升级vue路由器。肯定是使用vue路由器2.0.3。通过
npm list
ok cool确认-我用一个简单的示例应用程序更新了答案,以帮助你解决这个问题。
    wrapper = shallowMount(Flow, {
        propsData: {},
        mocks: {},
        stubs: ['router-view'], // add this
        store,
        localVue,
    });