javascript - Vue路由器:当孩子打开时隐藏父模板
问题描述
我尝试使用路由器安装 Vue.js,但遇到了一些视图问题。我有一条router.js
带孩子的路线。我想将此方法用于简单的面包屑并生成清晰的概览,以便我知道哪条路线属于哪里。
打开每条路线就像一个魅力,一切都出现了。当我打开时/apps
,我可以从我Apps.vue
的显示器中看到一个很好的视图App overview</h1>
。但现在我打开/apps/app-one
了,然后我看到了Apps.vue
和AppOne.vue
模板。如何防止显示两个模板?
Vue 组件如下所示:
路由器.js
import Router from 'vue-router';
import AppsPage from './components/Apps.vue'
import AppOne from './components/AppOne.vue'
import AppTwo from './components/AppTwo.vue'
export default new Router({
// mode: 'history',
routes: [
{
path: '/apps',
component: AppsPage,
children: [
{
path: '/apps/app-one',
component: AppOne,
},
{
path: '/apps/app-two',
component: AppTwo,
},
]
},
]
});
应用程序.vue
<template>
<div id="app-overview">
<h1>App overview</h1>
<router-view></router-view>
</div>
</template>
<script>
export default {
name: 'app_page'
}
</script>
应用程序1.vue
<template>
<div>
<h1>App 1</h1>
</div>
</template>
<script>
export default {
name: 'app_one'
}
</script>
App2.vue
<template>
<div>
<h1>App 2</h1>
</div>
</template>
<script>
export default {
name: 'app_two'
}
</script>
解决方案
让您的路由处于父子关系意味着子组件将在父组件内呈现(在<router-view>
)。这是预期的行为。
如果您不希望父组件在子路由处于活动状态时可见,那么路由应该是兄弟,而不是嵌套:
[
{
path: '/apps',
component: AppsPage,
},
{
path: '/apps/app-one',
component: AppOne,
},
{
path: '/apps/app-two',
component: AppTwo,
},
]
路由的结构反映了它们在页面上的呈现方式。
推荐阅读
- amazon-web-services - elasticbeanstalk 描述应用程序版本返回空
- apollo - Apollo Client GraphQL 在 Next.js getStaticProps 上创建静态页面
- javascript - 如何将 js 表数据转换为 .csv 表?
- python - Python 3.6、3.7、3.8 上的 Python ImportError,但 3.9 上没有
- python - KeyError:“[Float64Index([xxxxxx,yyyy,zzzz....]) 都不在 [index] 中
- flutter - 如何禁用颤振开关
- firebase - 永远不会调用 Firebase 消息传递 onResume、onLaunch 或 onBackgroundMessage
- java - Audiosystem 过早停止写入 AudioInputStream
- neo4j - 合并重复路径
- python - 如何确定传递给函数的参数数量?