Vue.js 使用<;路由器链路>;使用vue自定义元素

Vue.js 使用<;路由器链路>;使用vue自定义元素,vue.js,vuejs2,vue-router,Vue.js,Vuejs2,Vue Router,我是Vue新手,正在尝试创建一个可以嵌入非Vue应用程序中的Vue应用程序,因此我使用Vue自定义元素。我无法在Vue应用程序小部件中设置路由 我的应用程序中有两个组件-学校和学校 在main.js中,我有以下内容: import Vue from 'vue' import VueRouter from 'vue-router' import App from './App.vue' import vueCustomElement from 'vue-custom-element' import

我是Vue新手,正在尝试创建一个可以嵌入非Vue应用程序中的Vue应用程序,因此我使用Vue自定义元素。我无法在Vue应用程序小部件中设置路由

我的应用程序中有两个组件-学校和学校

在main.js中,我有以下内容:

import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
import vueCustomElement from 'vue-custom-element'
import Schools from "./components/Schools";
import School from "./components/Schools";

Vue.use(vueCustomElement);
const router = new VueRouter({
    routes: [
      { path: '/', component: Schools },
      { path: '/school', component: School },
    ]
  })
App.router = router;
Vue.customElement('schools-widget', App)
然后在我的学校组件(schools.vue)中

学校
我希望它能把我从我的学校部分链接到我的学校部分

但是我得到了错误

Unknown custom element: <router-link> - did you register the component correctly?
未知自定义元素:-您是否正确注册了组件?
我做错了什么

import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
import Schools from "./components/Schools";
import School from "./components/Schools";

const router = new VueRouter({
    routes: [
      { path: '/', component: Schools },
      { path: '/school', component: School },
    ]
  })
new Vue({
  router,
  render: (h) => h(App),
}).$mount('#app');

我认为您的代码应该是这样的。

您应该像这样将路由器注入组件:

Vue.customElement('schools-widget', {
  router,
  render: h => h(App)
});

更新1: 刚刚发现您忘记安装Vue路由器插件:

Vue.use(VueRouter)

您应该将
router
作为参数传递给
new Vue
实例,而不是
App
组件。@IgorMoraru当我以这种方式使用Vue.customElement时,我可以使用“new Vue”吗?你有例子吗?对不起,这是我的错。你不能。忽略我之前的评论。谢谢,但这不是用户vue自定义元素,这是我需要使用的。谢谢,我将尝试(通过安装VueRouter的方式)不,我的意思是通过
vue安装vue路由器插件。使用
不确定您的意思-我通过运行npm安装vue路由器安装了路由器,然后将其导入main.js?但您忘记了“使用”它。这就是我的意思我刚刚举了个例子。您应该阅读README.md以获取示例。
Vue.use(VueRouter)