vue-router 提供了一个全局组件 router-link (取代 a 标签)
如:
<div class="footer_wrap">
<!-- 配置导航,配置路由出口 -->
<router-link to="/find">发现音乐</router-link>
<router-link to="/my">我的音乐</router-link>
<router-link to="/friend">朋友</router-link>
</div>
我们发现 router-link 自动给当前导航添加了 两个高亮类名
- router-link-active:模糊匹配 (用的多)
to=“/my” 可以匹配 /my /my/a /my/b …- router-link-exact-active:精确匹配
to=“/my” 仅可以匹配 /my
修改类名:router-link 的 两个高亮类名 太长了,我们希望能定制怎么办?
通过路由设置,如下:
const router = new VueRouter({
routes: [...],
linkActiveClass: "类名1", // 自定义模糊匹配类名
linkExactActiveClass: "类名2" // 自定义精确匹配类名
})
效果如下:
两个情况:
传参:
to="/path?参数名1=值1&参数名2=值2"
接收参数:对应页面组件接收传参数
$route.query.参数名
传参:
const router = new VueRouter({
routes: [
...,
{
path: '/search/:words?', //如果不传参数,也希望匹配,可以加个可选符 "?",如:这里的words后面的 ?
component: Search
}
]
})
to="/path/参数值"
接收参数:对应页面组件接收传参数
$route.params.参数名
查询参数传参: (比较适合传多个参数)
动态路由传参: (优雅简洁,传单个参数比较方便)