2 回答
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>
如果您不需要.active
li 元素,<router-link>
请内置此内容。(请参阅 Dan 的 awnswer)
TA贡献1830条经验 获得超9个赞
Vue 路由器提供了这个功能。当链接处于活动状态时,它将应用router-link-exact-active
类。
在你的 CSS 中:
.router-link-exact-active { // styles here }
还有router-link-active
which 会同时匹配“/”和“/link-1”。
添加回答
举报