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开发者工具的下载安装

vue和vue-cli的区别与联系

vue的.vue文件是怎么run起来的(vue-loader)

vue3与vue2的比较

Vue初识Vue,Vue简介及Vue Devtools配置

Vue入门:Vue基础