zoukankan      html  css  js  c++  java
  • vue中router-link的详细用法

    官网文档地址:https://router.vuejs.org/zh/api/#to

    今天项目突然有需求,让vue中的一个页面跳转到另一个页面

    // 字符串
    <router-link to="apple"> to apple</router-link>
    // 对象
    <router-link :to="{path:'apple'}"> to apple</router-link>
    // 命名路由
    <router-link :to="{name: 'applename'}"> to apple</router-link>
    //直接路由带查询参数query,地址栏变成 /apple?color=red
    <router-link :to="{path: 'apple', query: {color: 'red' }}"> to apple</router-link>
    // 命名路由带查询参数query,地址栏变成/apple?color=red
    <router-link :to="{name: 'applename', query: {color: 'red' }}"> to apple</router-link>
    //直接路由带路由参数params,params 不生效,如果提供了 path,params 会被忽略
    <router-link :to="{path: 'apple', params: { color: 'red' }}"> to apple</router-link>
    // 命名路由带路由参数params,地址栏是/apple/red
    <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 类指定何种标签,同样它还是会监听点击,触发导航。

    <router-link :to="{name:'schedule',query:{aa:'dsd'}}" 
                        tag="li"
                        >跳转</router-link>

    如果此时我们想要在这个li标签中添加a标签,如下所示,可以不为a标签添加href属性即可哦

    <router-link :to="{name:'schedule',query:{aa:'dsd'}}" 
                        tag="li"
                        >
                        <a>跳转</a>
                        </router-link>

    在这种情况下,<a> 将作为真实的链接 (它会获得正确的 href 的),而 "激活时的CSS类名" 则设置到外层的 <li>。

    3、active-class   类型: string    默认值: "router-link-active"

    设置 链接激活时使用的 CSS 类名。默认值可以通过路由的构造选项 linkActiveClass 来全局配置。

    <router-link :to="{name:'schedule',query:{aa:'dsd'}}" 
                        tag="a"
                        active-class="red"
                        >
                        跳转
                        </router-link>

    默认值通过路由的构造选项 linkActiveClass 来全局配置,如下示例:

    export default new Router({
      mode:'history',
      linkActiveClass:'is-active',
      routes: [
        {
          path:'/about',
          component:about
        }
    ]
    })

    4、exact-active-class   类型: string    默认值: "router-link-exact-active"

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

    5、exact     类型: boolean     默认值: false

    按照这个规则,每个路由都会激活<router-link to="/">!想要链接使用 "exact 匹配模式",则使用 exact 属性:

    <li><router-link to="/">全局匹配</router-link></li>
    <li><router-link to="/" exact>严格匹配</router-link></li>

    简单点说,第一个的话,如果地址是/aa,或/aa/bb,……都会匹配成功,

    但加上exact,只有当地址是/时被匹配,其他都不会匹配成功

    6、event       类型: string | Array<string>    默认值: 'click'          声明可以用来触发导航的事件。可以是一个字符串。

    <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",依然可以打开一个新的页面

    <router-link :to="{name:'schedule',query:{aa:'dsd'}}" 
                        tag="a"
                        append
                        target="_blank"
                        >
                        跳转
                        </router-link>
  • 相关阅读:
    数据库的......
    数据库
    XML
    网络编程
    I/O系统---流
    周结

    集合,框架
    Spring入门
    Java Wed
  • 原文地址:https://www.cnblogs.com/fqh123/p/11758710.html
Copyright © 2011-2022 走看看