You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js中如何点击router-link为对应marker元素添加active类

实现方法

直接利用Vue Router内置的路由状态判断即可,不需要额外绑定点击事件:
用全局路由对象$route的name属性,和每个marker对应的路由名称做匹配,动态绑定active类。

修改后的Pug代码如下:

.navigation
ul
  li
    router-link(:to="{ name: 'tasks'}") Tasks
  li
    router-link(:to="{ name: 'kanban'}") Kanban
  li
    router-link(:to="{ name: 'activity'}") Activity
  li
    router-link(:to="{ name: 'calendar'}") Calendar
  li
    router-link(:to="{ name: 'files'}") Files
  .marker
  .selecttasks(:class="{ active: $route.name === 'tasks' }")
    span
  .selectkanban(:class="{ active: $route.name === 'kanban' }")
    span
  .selectactivity(:class="{ active: $route.name === 'activity' }")
    span.third-marker( )
  .selectcalendar(:class="{ active: $route.name === 'calendar' }")
    span.fourth-marker( )
  .selectfiles(:class="{ active: $route.name === 'files' }")
    span

如果是Vue3 + <script setup>的写法,先在脚本中引入路由实例:

import { useRoute } from 'vue-router'
const route = useRoute()

再把模板中所有的$route替换为route即可。

注意:需要保证路由表中定义的各路由name值和这里匹配的字符串完全一致,大小写不要出错。

内容的提问来源于stack exchange,提问作者Victor Zhvanetskiy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:06:04