vue的router-link
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue的router-link相关的知识,希望对你有一定的参考价值。
参考技术A router-link的属性,使用router-link的属性有:
to \replace\append\tag\active-class\exact\exact-active-class\event
1.to(string)----------------必填属性,跳转路径
2.replace(true/false)
利用 replace ,当点击时,会调用 router.replace() 而不是 router.push(),于是导航后不会留下 history 记录。
<router-link:to=" path:'/abc'"replace></router-link>
3.append(true/false)
设置 append 属性后,则在当前 (相对) 路径前添加基路径。例如,我们从 /a 导航到一个相对路径 b,如果没有配置 append,则路径为 /b,如果配了,则为 /a/b
4.tag(string)
有时候想要 渲染成某种标签,例如
。 于是我们使用 tag prop 类指定何种标签,同样它还是会监听点击,触发导航。
5.active-class(string)
设置链接激活时使用的 CSS 类名。默认值可以通过路由的构造选项 linkActiveClass 来全局配置。
<router-linkto="/productService"active-class="active">产品服务</router-link>
1
全局配置:
constcreateRouter=()=>newRouter(mode:'history',// require service supportlinkActiveClass:'is-active',scrollBehavior:()=>(y:0),routes:constantRoutes)
1
2
3
4
5
6
6.exact(true/false)
“是否激活”默认类名的依据是包含匹配。 举个例子,如果当前的路径是 /a 开头的,那么 也会被设置 CSS 类名。
按照这个规则,每个路由都会激活 <router-link to="/">!一般项目首页都是path:‘/’,这样就是点击别的页面首页也会高亮,想要链接使用“精确匹配模式”,则使用 exact 属性:一般会配合*exact-active-class*使用
<span><router-linkto="/"exact-active-class="activeIndex":exact="true">首页</router-link></span><span><router-linkto="/productService"active-class="active">产品服务</router-link></span><span><router-linkto="/industryConsulting"active-class="active">行业资讯</router-link></span><span><router-linkto="/aboutUs"active-class="active">关于我们</router-link></span>
1
2
3
4
5
6
7
8
9
10
11
12
7.exact-active-class
配置当链接被精确匹配的时候应该激活的 class。注意默认值也是可以通过路由构造函数选项 linkExactActiveClass 进行全局配置的。
参考文章: VUE API
路由 router-link的使用
main.js
import Vue from ‘vue‘
import App from ‘./App‘
import VueRouter from ‘vue-router‘
import footer from ‘./components/footer.vue‘
import header from ‘./components/header.vue‘
import body from ‘./components/body.vue‘
Vue.use(VueRouter);
let router=new VueRouter({
routes:[
{name:‘footer‘,path:‘/footer‘,component:footer},
{name:‘header‘,path:‘/header‘,component:header},
{name:‘body‘,path:‘/body‘,component:body}
]
})
/* eslint-disable no-new */
new Vue({
el: ‘#app‘,
router,
template: ‘<App/>‘,
components: { App }
})
app.vue
<template>
<div>
<!--留坑 非常重要-->
<router-view></router-view>
<router-link :to="{name:‘header‘}">header</router-link>
<router-link :to="{name:‘footer‘}">footer</router-link>
<router-link :to="{name:‘body‘}">body</router-link>
</div>
</template>
<script>
export default{
data(){
return{
msg:"这是一个aaa"
}
},
methods:{
}
}
</script>
<style>
</style>
以上是关于vue的router-link的主要内容,如果未能解决你的问题,请参考以下文章
vue3简介——升级Vue的版本 vue2.9.6升级到vue3.0——创建Vue3.0工程-——vue3_devtool开发者工具的下载安装