在vue项目里,公共的组件可以写到app.vue里面,每个页面基本都可以用到,但是login页面肯定用不到。怎么解决这个问题?
方法一:通过路径去判断
div id=“app”
Header v-if="!(path === ‘/login’)" /Header
router-view/
/div
data () {
return {
path: ‘’
}
},
mounted () {
this.path = this.$route.path
},
watch: {
$route (to, from) {
this.path = to.path
}
弊端:通过路径判断,会出现闪烁,然后再消失的情况。
方法二:通过route的参数来传递
Header v-if="$route.meta.requireLogin"
在路由里设置
meta: {
requireLogin: true
}
这样就不会出现闪烁的现象了