无法挂载组件:未定义模板或渲染函数
Failed to mount component: template or render function not defined
我正在尝试使用 vue-router
在我的导航栏组件下方显示路由组件,但我收到标题中指定的错误。
这是我的代码:
main.js
import Vue from 'vue';
import VueRouter from 'vue-router';
import app from './app';
Vue.use(VueRouter);
const foo = {
template: '<div>foo</div>',
};
const bar = {
template: '<div>bar</div>',
};
const routes = [
{
path: '/',
component: foo,
},
{
path: '/bar',
component: bar,
},
];
const router = new VueRouter({
mode: 'history',
routes,
});
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
render: h => h(app),
});
app.vue
<template>
<div id="app">
<fs-navbar/>
<main>
<router-view/>
</main>
</div>
</template>
<style scoped lang="scss">
</style>
<script>
import fsNavbar from './components/fs-navbar';
export default {
components: {
fsNavbar,
},
};
</script>
components/fs-navbar.vue
<template>
<nav>...</nav>
</template>
<style scoped lang="scss">
</style>
<script>
import Vue from 'vue';
export default Vue.component('fs-navbar', {
// logic
});
</script>
此应用导致错误:
vue.js?3de6:2574[Vue warn]: Failed to mount component: template or render function not defined. (found in component <fs-navbar>)
如果我将 fs-navbar
模板直接添加到 app.vue
的模板中,一切都会按预期工作。没有路由器应用程序也能正常工作。
我正在使用 vue-cli with this template(vuejs2)
事实证明,Vue.component()
return 值不适用于路由器。
更改时:
export default Vue.component('component-name', {})
至:
export default {}
一切正常。
类似的问题,我写的时候:
let routes = [{
path: '/',
component: require('./components/member.vue')
}]
失败:[Vue 警告]:无法挂载组件:未定义模板或渲染函数。
添加“.default”,有效!
let routes = [{
path: '/',
component: require('./components/member.vue').default
}]
PS:"vue": "^2.5.2","vue-router": "^3.0.1""vue-loader": "^13.3.0",
我正在尝试使用 vue-router
在我的导航栏组件下方显示路由组件,但我收到标题中指定的错误。
这是我的代码:
main.js
import Vue from 'vue';
import VueRouter from 'vue-router';
import app from './app';
Vue.use(VueRouter);
const foo = {
template: '<div>foo</div>',
};
const bar = {
template: '<div>bar</div>',
};
const routes = [
{
path: '/',
component: foo,
},
{
path: '/bar',
component: bar,
},
];
const router = new VueRouter({
mode: 'history',
routes,
});
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
render: h => h(app),
});
app.vue
<template>
<div id="app">
<fs-navbar/>
<main>
<router-view/>
</main>
</div>
</template>
<style scoped lang="scss">
</style>
<script>
import fsNavbar from './components/fs-navbar';
export default {
components: {
fsNavbar,
},
};
</script>
components/fs-navbar.vue
<template>
<nav>...</nav>
</template>
<style scoped lang="scss">
</style>
<script>
import Vue from 'vue';
export default Vue.component('fs-navbar', {
// logic
});
</script>
此应用导致错误:
vue.js?3de6:2574[Vue warn]: Failed to mount component: template or render function not defined. (found in component <fs-navbar>)
如果我将 fs-navbar
模板直接添加到 app.vue
的模板中,一切都会按预期工作。没有路由器应用程序也能正常工作。
我正在使用 vue-cli with this template(vuejs2)
事实证明,Vue.component()
return 值不适用于路由器。
更改时:
export default Vue.component('component-name', {})
至:
export default {}
一切正常。
类似的问题,我写的时候:
let routes = [{
path: '/',
component: require('./components/member.vue')
}]
失败:[Vue 警告]:无法挂载组件:未定义模板或渲染函数。
添加“.default”,有效!
let routes = [{
path: '/',
component: require('./components/member.vue').default
}]
PS:"vue": "^2.5.2","vue-router": "^3.0.1""vue-loader": "^13.3.0",