router-link:导航链接 / 声明式导航、跳转传参

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

router-link 本质还是 a 标签

router-link 功能:

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

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

 

router-link 会自动给当前导航添加两个类名:router-link-active(模糊匹配,用的比较多)、router-link-exact-active(精确匹配)

 

代码演示:

修改前:

      <a   href = " #/find " > 发现音乐 </a>

      <a   href = " #/my " > 我的音乐 </a>

修改后:

      <router-link   to = " /find " > 发现音乐 </router-link>

      <router-link   to = " /my " > 我的音乐 </router-link>

 

在 style 标签里给 router-link 设置导航高亮:

<style>
a.router-link-active {
  background-color: #bfd7e1;
}
</style>
或者(推荐用上一个)
<style>
a.router-link-exact-active {
  background-color: #bfd7e1;
}
</style>
 
 ---------------------------------------------------------------------------------------------------------------------------
 
router-link 跳转传参:
应用场景:在跳转路由时 进行传参
 
语法:
方法一 :查询参数传参:
① 语法格式:  to = " /path ? 参数名 = 值 & 参数名2 = 值2 "
② 对应页面组件接收传递过来的值:  $route.query.参数名
            eg:<p> 搜索关键字:{{ $route.query.username }} </p>
    在 mounted () 或 created () 中如果要获取路由参数,需要通过  this.$route.query.参数名   来获取
 
方法二 :动态路由传参:
① 配置动态路由
const router = new VueRouter({
  routes: [
    { path: ' /search/:words ' ,  component: Search },
  ]
})
② 配置导航链接:  to = " /path/参数值 " (eg:to = " /search/黑马程序员 ")
③ 对应页面组件接收传递过来的值:  $route.params.参数名
      eg:  $route.params.words (words这里是看第①步是什么路由)
                {{ $route.params.words }}   →   黑马程序员
 
 动态路由传参的注意点: /search/:words 表示 必须要传参数。如果不传参数,也希望匹配,可以加个可选符 " ? "
      eg:{ path: ' /search/:words? ' ,  component: Search }
 
posted @ 2023-10-11 14:26  1stzz1  阅读(76)  评论(0编辑  收藏  举报