Vue.js 使用<;路由器链路>;使用vue自定义元素
我是Vue新手,正在尝试创建一个可以嵌入非Vue应用程序中的Vue应用程序,因此我使用Vue自定义元素。我无法在Vue应用程序小部件中设置路由 我的应用程序中有两个组件-学校和学校 在main.js中,我有以下内容: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
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)