【发布时间】:2021-06-19 13:18:47
【问题描述】:
我正在构建一个 Nuxt 应用,但在使用条件样式时遇到了问题。我正在尝试做的是根据它是什么页面对活动链接应用不同的背景颜色。我知道我可以使用 .nuxt-link-exact-active 来设置活动链接的样式,但我一直在思考如何在每个页面上设置不同的样式。
我在每个页面上呈现的组件中都有链接。我已经尝试在页面级别使用.nuxt-link-exact-active,但它没有被拾取。
这是我到目前为止所得到的,它确实会根据页面改变样式,但它对 所有 链接都这样做,我只希望它在 active 链接。如果我能澄清任何事情,请告诉我。谢谢!
<template>
<nav class="flex-container flex-column mt-1">
<NuxtLink to="/about" class="link" :class="classObject">about</NuxtLink>
<div class="mt-1 flex-container">
<NuxtLink to="/projects" class="link" :class="classObject"
>projects</NuxtLink
>
</div>
<div class="mt-1 flex-container">
<NuxtLink to="/contact" class="link" :class="classObject"
>contact</NuxtLink
>
</div>
</nav>
</template>
<script>
export default {
// apply current route name as a class to the matching div
computed: {
classObject() {
return {
about: this.$route.name === 'about',
projects: this.$route.name === 'projects',
contact: this.$route.name === 'contact',
}
},
},
}
</script>
<style lang="scss" scoped>
.about {
background-color: $near-white;
}
.projects {
background-color: $blue;
}
.contact {
background-color: $yellow;
}
</style>
【问题讨论】: