'Toggling components depending of the current path in Nuxt
My layouts/default.vue
looks like this:
<template>
<v-app style="background-color: transparent; color: unset">
<v-main>
<ActHeader></ActHeader>
<Nuxt
v-if="
!$nuxt.isOffline ||
$route.name == 'profile-downloads' ||
$route.name == 'profile-downloads-id'
"
style="min-height: 300px"
/>
<Footer />
</v-main>
</v-app>
</template>
<script>
import Footer from '@/components/Footer.vue'
export default {
components: {
Footer,
},
async fetch() {
await this.$store.dispatch('store/retrieveSettings')
await this.$store.dispatch('store/retrieveMenus')
},
}
</script>
I don't want to show actHeader
and Footer
components into the first page(/
) but in other pages(/about
) I want to show these components.
I'm already aware of finding out URL and using watch like this:
watch: {
$route (to, from) {
//false actHeader and Footer Components!
}
}
and it's actually working but I'm looking for a better answer, maybe something more logical.
Solution 1:[1]
There is no special magic, use a conditional on each component, no cleaner way of doing otherwise (no need to over-engineer here).
<template>
<div>
<act-header v-if="$route.name !== 'index'"></act-header>
<nuxt />
<footer-comp v-if="$route.name !== 'index'"></footer-comp>
</div>
</template>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | kissu |