nuxt2导航点击高亮,点击二级导航一级导航依然高亮实现列子
时间: 2023-07-13 20:25:16 浏览: 274
下拉的二级导航菜单 一列式的
您可以使用以下代码实现 Nuxt.js 中导航点击高亮,并且点击二级导航时一级导航仍然高亮的功能。
1. 在 `nuxt.config.js` 中定义路由的 `linkActiveClass` 和 `linkExactActiveClass`:
```
// nuxt.config.js
export default {
// ...
router: {
linkActiveClass: 'active',
linkExactActiveClass: 'exact-active',
},
// ...
};
```
2. 在模板中添加导航:
```
<template>
<div>
<nav>
<ul>
<li :class="{ active: $route.path === '/' }">
<nuxt-link to="/">首页</nuxt-link>
</li>
<li :class="{ active: $route.path.startsWith('/about') }">
<nuxt-link to="/about">关于我们</nuxt-link>
<ul>
<li :class="{ active: $route.path === '/about/history' }">
<nuxt-link to="/about/history">历史</nuxt-link>
</li>
<li :class="{ active: $route.path === '/about/team' }">
<nuxt-link to="/about/team">团队</nuxt-link>
</li>
</ul>
</li>
<li :class="{ active: $route.path.startsWith('/contact') }">
<nuxt-link to="/contact">联系我们</nuxt-link>
</li>
</ul>
</nav>
<nuxt />
</div>
</template>
<script>
export default {};
</script>
<style>
nav ul {
list-style: none;
margin: 0;
padding: 0;
}
nav ul li {
display: inline-block;
margin-right: 20px;
}
nav ul li.active > a,
nav ul li.exact-active > a {
color: red;
}
</style>
```
在上面的代码中,我们使用 `:class` 绑定了一个动态的类名,根据当前路由的 `path` 判断是否选中。对于一级导航,我们使用 `$route.path === '/'` 判断当前路由是否是首页,对于二级导航,我们使用 `$route.path.startsWith('/about')` 判断当前路由是否以 `/about` 开头。同时,我们还定义了 `active` 和 `exact-active` 两个类名,`active` 用于普通选中状态,`exact-active` 用于精确匹配选中状态。
希望这个例子对您有所帮助,如果还有其他问题,请随时问我。
阅读全文