当前位置:首页 > VUE

vue路由实现点击class

2026-02-21 09:45:45VUE

Vue 路由实现点击添加 class

在 Vue 中通过路由实现点击添加 class 可以通过以下几种方式实现,主要涉及 router-link 和动态 class 绑定。

使用 router-link 的 active-class

router-link 默认会在路由匹配时自动添加 router-link-active class,可以通过 active-class 属性自定义 class 名称。

vue路由实现点击class

<router-link 
  to="/home" 
  active-class="active"
>
  Home
</router-link>
.active {
  color: red;
  font-weight: bold;
}

动态绑定 class

通过 :class 动态绑定 class,结合当前路由路径判断是否添加 class。

<router-link 
  to="/home" 
  :class="{ active: $route.path === '/home' }"
>
  Home
</router-link>

使用 Vuex 或状态管理

在更复杂的场景中,可以通过 Vuex 存储当前激活的路由,动态绑定 class。

vue路由实现点击class

// store.js
state: {
  activeRoute: '/home'
}
<router-link 
  to="/home" 
  :class="{ active: $store.state.activeRoute === '/home' }"
>
  Home
</router-link>

监听路由变化

通过监听路由变化,手动添加或移除 class。

watch: {
  $route(to, from) {
    if (to.path === '/home') {
      document.getElementById('home-link').classList.add('active')
    } else {
      document.getElementById('home-link').classList.remove('active')
    }
  }
}

使用 exact 精确匹配

router-linkexact 属性可以确保路径完全匹配时才添加 class。

<router-link 
  to="/home" 
  active-class="active"
  exact
>
  Home
</router-link>

以上方法可以根据具体需求选择适合的方式实现点击添加 class 的效果。

标签: 路由vue
分享给朋友:

相关文章

vue实现视窗

vue实现视窗

Vue 实现视窗功能 在 Vue 中实现视窗功能通常涉及监听浏览器窗口大小变化、响应式布局或创建自定义弹窗组件。以下是几种常见实现方式: 监听浏览器窗口大小变化 使用 Vue 的 mounted…

vue实现详情

vue实现详情

Vue 实现详情页的常见方法 使用动态路由 在 Vue Router 中配置动态路由参数,通过 $route.params 获取详情 ID。示例路由配置: { path: '/detail/:i…

vue computed实现

vue computed实现

计算属性的基本用法 在Vue中,计算属性通过computed选项定义,用于声明依赖于其他属性的动态值。计算属性基于它们的依赖进行缓存,只有依赖发生变化时才会重新计算。 new Vue({ da…

vue多选实现

vue多选实现

Vue 多选实现方法 基础实现(v-model + multiple) 在 Vue 中实现多选可以通过 <select> 元素的 multiple 属性结合 v-model 完成。v-mo…

vue mvvm 实现

vue mvvm 实现

Vue MVVM 实现原理 Vue.js 的 MVVM(Model-View-ViewModel)架构通过数据绑定和响应式系统实现视图与数据的自动同步。以下是其核心实现机制: 数据劫持与响应式系统…

vue 实现遮罩

vue 实现遮罩

Vue 实现遮罩层的方法 使用固定定位和透明背景 在Vue中实现遮罩层可以通过CSS固定定位结合透明背景色完成。创建一个全屏遮罩组件,利用position: fixed覆盖整个视窗。 <te…