vue3 RouterLink链接颜色修改的方法

方案 1:正确穿透写法(最简推荐)

:deep() 里面直接写子元素,外层 .nav 自带 scoped 标识,不用放进 deep 里

css 复制代码
/* 正确:外层.nav自带data-v,deep只写内部a */
.nav :deep(a) {
  color: #333;
  text-decoration: none;
}
.nav :deep(a:hover) {
  color: #6381a0;
}
.nav :deep(a.router-link-active) {
  color: #2baa95;
  font-weight: bold;
}
.nav :deep(a.router-link-exact-active) {
  color: #3fa531;
}
html 复制代码
<RouterLink to="/" class="nav-link">
  <div class="item">xxx</div>
</RouterLink>
css 复制代码
.nav :deep(.nav-link) {
  color: #333;
  text-decoration: none;
}
.nav :deep(.nav-link:hover) {
  color: #6381a0;
}
.nav :deep(.nav-link.router-link-active) {
  color: #2baa95;
}

方案 3:使用插槽完全脱离 a 标签控制(无穿透烦恼)

hmtl 复制代码
<RouterLink to="/" v-slot="{ navigate, isActive }">
  <div class="item" :class="{ active: isActive }" @click="navigate">
    <img src="@/assets/images/home.png"/>
    <span>首页</span>
  </div>
</RouterLink>

样式直接写,不需要 :deep

css 复制代码
.item {
  display: flex;
  align-items: center;
  color: #333;
  cursor: pointer;
  text-decoration: none;
}
.item:hover {
  color: #6381a0;
}
.item.active {
  color: #3fa531;
  font-weight: bold;
}
相关推荐
钛态8 小时前
Vite 中的 CSS 工程化:从 CSS Modules 到 UnoCSS 的渐进式迁移
前端·vue·react·web
Csvn10 小时前
原型链、this 与闭包内存:三座深水区一次打通(含内存泄漏排查实战)
前端·javascript
葡萄城技术团队10 小时前
如何通过 JSON 数据源 / Web API 快速构建轻量级报表(Report)?
前端·json·原型模式
浪兎兎10 小时前
【Java Web】Servlet + JSP 笔记
java·前端·servlet
Patrick_Wilson11 小时前
iOS Safari Clipboard API 权限弹窗问题
前端·ios·safari
OpenTiny社区12 小时前
Naive UI × GenUI SDK:自定义物料库搭建实战
前端·ai编程
kyriewen12 小时前
我拿 4 个真实前端任务试了 GLM-5.3 Flash:代码一遍跑通,账单 4 分钱
前端·程序员·ai编程
IT_陈寒12 小时前
Vue的响应式更新有时候真的不听话
前端·人工智能·后端
风骏时光牛马12 小时前
AI编程常见问题梳理与要点解析
前端
前端snow12 小时前
ai agent -- LCEL 汇总
前端