37 - 使用router-link替代a标签实现高亮

一. 声明式导航 - 导航链接

需求:实现导航高亮效果

vue-router 提供了一个全局组件 router-link (取代 a标签)

        (1).  能跳转,配置 to 属性指定路径(必须)。本质还是 a 标,to 无需 #

        (2).  能高亮,默认就会提供高亮类名,可以直接设置高亮样式

总结:

 1. router-link是什么?
        vue-router提供的全局组件,用于替换 a 标签

2. router-link怎么用?
        <router-link to="/路径值"></router-link>
        必须传入to属性,指定路由路径值

3. router-link好处?
        能跳转,能高亮(自带激活时的类名)

<template>
  <div>
    <div class="footer_wrap">
      <!-- 替换a标签 配置to属性 -->
      <router-link to="/find">发现音乐</router-link>
      <router-link to="/my">我的音乐</router-link>
      <router-link to="/friend">朋友</router-link>
    </div>
    <div class="top">
      <!-- 路由出口 -> 匹配的组件所展示的位置 -->
      <router-view></router-view>
    </div>
  </div>
</template> 
<script>

export default {
  data() {
    return {

    }
  },
}
</script>
<style>
body{
  margin: 0;
  padding: 0;
}
.footer_wrap{
 position: relative;
 left: 0;
 top: 0;
 display: flex;
 width: 100%;
 text-align: center;
 background-color: #333;
 color: #ccc;
}
.footer_wrap a{
  flex:1;
  text-decoration: none;
  padding: 20px 0;
  line-height: 20px;
  background-color: #333;
  color:#ccc;
  border: 1px solid black;
}
/* router-link标签点击后会增加两个class 值,直接使用即可
   点击那个就增加那个样式 */
.footer_wrap a.router-link-active{
  background-color: purple;
}

.footer_wrap a:hover{
  background-color: #555;
}
</style>

二. 声明式导航 - 两个类名

说明:我们发现 router-link 自动给当前导航添加了 两个高亮类名

1.  router-link-active 模糊匹配(用的多)
        to="/my" 可以匹配 /my /my/a /my/b

2. router-link-exact-active 精确匹配
        to="/my" 仅可以匹配 /my
 

总结:

router-link 会自动给当前导航添加两个类名,有什么区别呢?

        router-link-active 模糊匹配(用的多)

        router-link-exact-active 精确匹配

三. 自定义匹配的类名

说明:router-link 的 两个高亮类名 太长了,我们希望能定制怎么办?

const router = new VueRouter({
    routes: [...],
    linkActiveClass : "类名1", // 配置模糊匹配的类名
    linkExactActiveClass: "类名2" // 配置精确匹配的类名
})

 

总结:

 如何自定义 router-link 的 两个高亮类名?
        linkActiveClass 模糊匹配 类名自定义
        linkExactActiveClass 精确匹配 类名自定义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值