为了账号安全,请及时绑定邮箱和手机立即绑定

在 vue.js 中根据 url 将类 active 添加到路由器链接

在 vue.js 中根据 url 将类 active 添加到路由器链接

慕森卡 2023-06-15 16:25:13
我有这样的链接: <li class="list-item active"> <router-link :to="{name:'link-1'}"> Link 1</router-link>  <li class="list-item"> <router-link :to="{name:'link-2'}"> Link 2</router-link>我想根据 url 假设 url 是 localhost:8000/link-1 那么 link-1 应该是活动的,用列表项类添加活动类。
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

如果你使用的是 Vue Router > 3.1.0,你可以<router-link>为此使用一个作用域插槽:


<router-link

  :to="{name:'link-1'}"

  v-slot="{ href, route, navigate, isActive, isExactActive }"

>

  <li

    :class="[isActive && 'active', isExactActive && 'exact-active']"

  >

    <a :href="href" @click="navigate">Link 1</a>

  </li>

</router-link>


<router-link

  :to="{name:'link-2'}"

  v-slot="{ href, route, navigate, isActive, isExactActive }"

>

  <li

    :class="[isActive && 'active', isExactActive && 'exact-active']"

  >

    <a :href="href" @click="navigate">Link 2</a>

  </li>

</router-link>

如果您不需要.activeli 元素,<router-link>请内置此内容。(请参阅 Dan 的 awnswer)



查看完整回答
反对 回复 2023-06-15
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

Vue 路由器提供了这个功能。当链接处于活动状态时,它将应用router-link-exact-active类。

在你的 CSS 中:

.router-link-exact-active {
  // styles here
}

还有router-link-activewhich 会同时匹配“/”和“/link-1”。


查看完整回答
反对 回复 2023-06-15
  • 2 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信