当前位置:首页 > VUE

vue实现跳转高亮

2026-02-11 10:30:13VUE

Vue 实现路由跳转高亮

在 Vue 中实现路由跳转高亮通常有两种常见方式:通过 router-link 的激活类或手动监听路由变化动态设置样式。

使用 router-link 的激活类

Vue Router 的 router-link 组件会自动为当前激活的路由链接添加特定类名(默认 router-link-activerouter-link-exact-active),可直接利用这些类名设置高亮样式。

<template>
  <router-link to="/home" class="nav-link">Home</router-link>
  <router-link to="/about" class="nav-link">About</router-link>
</template>

<style>
.nav-link {
  color: gray;
}
.nav-link.router-link-active {
  color: red; /* 非精确匹配 */
}
.nav-link.router-link-exact-active {
  color: blue; /* 精确匹配 */
}
</style>

动态绑定 class 或 style

通过计算属性或方法,根据当前路由动态绑定高亮样式。

<template>
  <div 
    :class="{ active: $route.path === '/home' }"
    @click="$router.push('/home')"
  >Home</div>
  <div 
    :class="{ active: $route.path === '/about' }"
    @click="$router.push('/about')"
  >About</div>
</template>

<style>
.active {
  background-color: yellow;
}
</style>

使用 Vuex 或 Pinia 管理状态

对于复杂场景(如多层嵌套路由),可通过状态管理工具存储当前高亮项。

// Pinia 示例
import { defineStore } from 'pinia';
export const useNavStore = defineStore('nav', {
  state: () => ({
    activePath: '/'
  })
});
<template>
  <div 
    :class="{ active: activePath === '/home' }"
    @click="setActive('/home')"
  >Home</div>
</template>

<script setup>
import { useNavStore } from '@/stores/nav';
import { storeToRefs } from 'pinia';
const navStore = useNavStore();
const { activePath } = storeToRefs(navStore);
const setActive = (path) => {
  navStore.activePath = path;
};
</script>

嵌套路由的高亮处理

嵌套路由需结合 route.matched 判断父级路径是否匹配。

vue实现跳转高亮

computed: {
  isActive() {
    return this.$route.matched.some(record => record.path === this.to);
  }
}

注意事项

  • 精确匹配使用 router-link-exact-active,模糊匹配使用 router-link-active
  • 动态绑定时注意响应式数据更新,避免直接修改 $route 对象。
  • 对于非 router-link 元素,需手动监听路由变化(如使用 watchonBeforeRouteUpdate)。

标签: 跳转vue
分享给朋友:

相关文章

vue实现矩阵

vue实现矩阵

Vue 实现矩阵的方法 在 Vue 中实现矩阵操作可以通过多种方式完成,以下是一些常见的方法: 使用二维数组表示矩阵 矩阵可以用二维数组来表示,每个元素对应矩阵中的一个值。在 Vue 的 data…

vue实现bootstrap

vue实现bootstrap

Vue 中集成 Bootstrap 的方法 在 Vue 项目中集成 Bootstrap 可以通过以下方式实现,涵盖样式、组件和交互功能。 安装 Bootstrap 依赖 通过 npm 或 yarn…

简单实现vue

简单实现vue

Vue 的基本实现 创建一个简单的 Vue 应用需要引入 Vue 库,并编写基本的模板和数据绑定逻辑。 <!DOCTYPE html> <html lang="en"> &l…

vue筛选实现

vue筛选实现

Vue 筛选实现方法 使用计算属性实现筛选 计算属性是 Vue 中实现数据筛选的常用方式。通过定义一个计算属性,可以根据输入的条件动态过滤数据。 <template> <div…

甘特图vue实现

甘特图vue实现

甘特图 Vue 实现方法 使用开源库 vue-ganttastic 安装依赖: npm install vue-ganttastic 基础实现代码: <template> <…

vue nexttick 实现

vue nexttick 实现

Vue nextTick 实现原理 Vue 的 nextTick 是一个用于在下次 DOM 更新循环结束之后执行延迟回调的方法。它主要用于确保在 DOM 更新完成后执行某些操作。 核心实现机制 ne…