1.导航条只在除登录注册以外的页面显示; 2.公共组件在部分页面显示,部分页面不显示。
router-view结合$route.meta
APP.vue中:
<template> <div id="app"> <div v-if="$route.meta.keepAlive"> <navTop></navTop> <router-view></router-view> </div> <router-view v-if="!$route.meta.keepAlive"></router-view> </div> </template> <script> import navTop from '@/components/common/nav.vue'; export default { name:"commonNav", components:{ navTop } } </script>
router.js中:
需要显示公共组件中keepAlive的属性值为 true,不需要显示公共组件keepAlive的属性值为flase。
{ path: '/DeveloperDocumentation', name: "DeveloperDocumentation", component: DeveloperDocumentation, meta: { keepAlive: true } },
这样,导航条就只会在你设置keepAlive属性值为true的页面显示了。
在网上看到了很多的解释,99%都是keepAlive结合$route.meta。 下面用事实告诉你,这种说法是错误的。
监听路由$router以后,路由变化后会发现meta属性中多出了刚才设置的keepAlive属性。
2.meta
在vue的官方文档中,meta属性这样定义:
any:任何
所以你明白了吗?meta可以是任何属性。
3. 实例
为了验证,我们把单词改为keep。
你会发现,效果依然是完美的!
甚至可以把true改为2,flase改为1。 APP.vue中的代码改为如下:
效果依然是正常的。
转自:https://blog.csdn.net/youlinaixu/article/details/82017479