QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

vue教程

vue中router-link的详细用法

 shitouadmin  2023-07-01 11:02:03
<router-link>

<router-link> 组件支持用户在具有路由功能的应用中(点击)导航。 通过 to 属性指定目标地址,默认渲染成带有正确链接的 <a> 标签,可以通过配置 tag 属性生成别的标签.。另外,当目标路由成功激活时,链接元素自动设置一个表示激活的 CSS 类名。
  1. // 字符串 
  2. <router-link to="apple"> to apple</router-link> 
  3. // 对象 
  4. <router-link :to="{path:'apple'}"> to apple</router-link> 
  5. // 命名路由 
  6. <router-link :to="{name: 'applename'}"> to apple</router-link> 
  7. //直接路由带查询参数query,地址栏变成 /apple?color=red 
  8. <router-link :to="{path: 'apple', query: {color: 'red' }}"> to apple</router-link> 
  9. // 命名路由带查询参数query,地址栏变成/apple?color=red 
  10. <router-link :to="{name: 'applename', query: {color: 'red' }}"> to apple</router-link> 
  11. //直接路由带路由参数params,params 不生效,如果提供了 path,params 会被忽略 
  12. <router-link :to="{path: 'apple', params: { color: 'red' }}"> to apple</router-link> 
  13. // 命名路由带路由参数params,地址栏是/apple/red 
  14. <router-link :to="{name: 'applename', params: { color: 'red' }}"> to apple</router-link> 
router-link标签会自动渲染成a标签,
<router-link>组件的属性有:
to 、replace、 append、  tag、  active-class、 exact 、 event、  exact-active-class
1、to(必选参数):类型string/location
2、tag:类型: string    默认值: "a"
如果想要 <router-link> 渲染成某种标签,例如 <li>。 于是我们使用 tag prop 类指定何种标签,同样它还是会监听点击,触发导航。
  1. <router-link :to="{name:'schedule',query:{aa:'dsd'}}" 
  2.           tag="li" 
  3. >跳转</router-link> 
如果此时我们想要在这个li标签中添加a标签,如下所示,可以不为a标签添加href属性即可哦
  1. <router-link :to="{name:'schedule',query:{aa:'dsd'}}" 
  2.                     tag="li" 
  3.                     > 
  4.         <a>跳转</a> 
  5.  </router-link> 
在这种情况下,<a> 将作为真实的链接 (它会获得正确的 href 的),而 "激活时的CSS类名" 则设置到外层的 <li>。

3、active-class   类型: string    默认值: "router-link-active"
设置 链接激活时使用的 CSS 类名。默认值可以通过路由的构造选项 linkActiveClass 来全局配置。
  1. <router-link :to="{name:'schedule',query:{aa:'dsd'}}" 
  2.                     tag="a" 
  3.                     active-class="red" 
  4.                     > 
  5.                     跳转 
  6.  </router-link> 
默认值通过路由的构造选项 linkActiveClass 来全局配置,如下示例:
  1. export default new Router({ 
  2.   mode:'history'
  3.   linkActiveClass:'is-active'
  4.   routes: [ 
  5.     { 
  6.       path:'/about'
  7.       component:about 
  8.     } 
  9. }) 
4、exact-active-class   类型: string    默认值: "router-link-exact-active"

配置当链接被精确匹配的时候应该激活的 class。注意默认值也是可以通过路由构造函数选项 linkExactActiveClass 进行全局配置的。

5、exact     类型: boolean     默认值: false
按照这个规则,每个路由都会激活<router-link to="/">!想要链接使用 "exact 匹配模式",则使用 exact 属性:
  1. <li><router-link to="/">全局匹配</router-link></li> 
  2. <li><router-link to="/" exact>严格匹配</router-link></li> 
简单点说,第一个的话,如果地址是/aa,或/aa/bb,……都会匹配成功,
但加上exact,只有当地址是/时被匹配,其他都不会匹配成功

6、event       类型: string | Array<string>    默认值: 'click'          声明可以用来触发导航的事件。可以是一个字符串。
  1. <router-link to="/document" event="mouseover">document</router-link> 
如果我们不加event,那么默认情况下是当我们点击document的时候,跳转到相应的页面,但当我们加上event的时候,就可以改变触发导航的事件,比如鼠标移入事件

7、replace   类型: boolean  默认值: false  
设置 replace 属性的话,当点击时,会调用 router.replace() 而不是 router.push(),于是导航后不会留下 history 记录。
8、append    类型: boolean   默认值: false     设置 append 属性后,则在当前 (相对) 路径前添加基路径
9、另外,加上target属性为"_blank",依然可以打开一个新的页面
  1. <router-link :to="{name:'schedule',query:{aa:'dsd'}}" 
  2.                     tag="a" 
  3.                     append 
  4.                     target="_blank" 
  5.                     > 
  6.                     跳转 
  7. </router-link> 

 

¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《vue中router-link的详细用法》发布于石头博客文章,作者:shitouadmin,如若转载,请注明出处:https://www.pweb123.com/frame/vue/970.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序