【发布时间】:2019-07-10 23:06:50
【问题描述】:
现在,我正在使用 vue-router 在 vue.js 中编写一个单页应用程序。主页、登录页面等页面都共享一个导航和页脚组件。然而,在几页上,我需要整个屏幕,以便不显示导航和页脚。
因此,我决定嵌套组件并在必要时包含导航和页脚组件。我现在的问题是,导航和页脚模板在所有页面上消失了。
编辑:更完整的演示可以在this Github repository找到。
这是我正在使用的文件的简化版本:
index.html:
<div id="app">
<router-view></routerview>
</div>
router.js:
import Homepage from './homepage.vue';
import SignIn from './signin.vue';
const router = new VueRouter({
routes: [
{path: '/', component: Homepage},
{path: '/signin', component: SignIn},
]
})
homepage.vue 和 signin.vue 组件:
<template>
<navigation></navigation>
// some page-specific content
<footer-vue></footer-vue>
</template>
<script>
import Navigation from './navigation.vue';
import Footer from './footer.vue';
export default {
components: {
'navigation': Navigation,
'footer-vue': Footer,
},
}
</script>
没有导航和页脚的组件:
<template>
// some page-specific content
</template>
甚至可以以这种方式嵌套组件吗?我希望有人能够指出我正确的方向。
【问题讨论】:
-
任何控制台错误?看起来您的模板中有多个根节点,这是不允许的。
-
npm run build没有显示任何错误(我使用的是 webpack-simple)模板,浏览器中的开发者控制台也没有。 -
您能否确认您的真实模板中是否有多个根节点?或者这只是为这个问题准备示例的错误?
-
我为更完整的示例创建了一个 Github 存储库。随意看看。您可以在原帖中找到链接。
标签: javascript vue.js vue-component vue-router