zoukankan      html  css  js  c++  java
  • Vue-详解设置路由导航的四种种方法: <router-link :to="..."> 、router.push(...)、router.go(...)和router.replace

     

    一、<router-link :to="...">
      to里的值可以是一个字符串路径,或者一个描述地址的对象。例如:

    // 字符串
    <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.push(...)方法
      同样的规则也适用于router.push(...)方法。

        push跳转到不同的url,但这个方法回向history栈添加一个记录,点击后退会返回到上一个页面。

    // 字符串
    router.push('apple')
    // 对象 router.push({path:'apple'})
    // 命名路由 router.push({name: 'applename'})
    //直接路由带查询参数query,地址栏变成 /apple?color=red router.push({path: 'apple', query: {color: 'red' }})
    // 命名路由带查询参数query,地址栏变成/apple?color=red router.push({name: 'applename', query: {color: 'red' }})
    //直接路由带路由参数params,params 不生效,如果提供了 path,params 会被忽略 router.push({path:'applename', params:{ color: 'red' }})
    // 命名路由带路由参数params,地址栏是/apple/red router.push({name:'applename', params:{ color: 'red' }})

    三、this.$router.go(val) => 在history记录中前进或者后退val步,当val为0时刷新当前页面。

      this.$router.go(-1); // 回到上一页

           

    四、this.$router.replace

      同样是跳转到指定的url,但是这个方法不会向history里面添加新的记录,点击返回,会跳转到上上一个页面。上一个记录是不存在的。

      

    五、注意点

    1、关于带参数的路由总结如下:

    无论是直接路由“path" 还是命名路由“name”,带查询参数query,地址栏会变成“/url?查询参数名:查询参数值“;
    直接路由“path" 带路由参数params params 不生效;
    命名路由“name" 带路由参数params 地址栏保持是“/url/路由参数值”;

    2、设置路由map里的path值:

     带路由参数params时,路由map里的path应该写成:  path:'/apple/:color' ;
     带查询参数query时,路由map里的path应该写成: path:'/apple' ;

    3、获取参数方法:

    在组件中:  {{$route.params.color}}
    在js里: this.$route.params.color

     借鉴自哥哦狗子的博客
  • 相关阅读:
    剑指offer十二之数值的整数次方
    剑指offer十一之二进制中1的个数
    剑指offer十之矩形覆盖
    剑指offer九之变态跳台阶
    剑指offer八之跳台阶
    程序员的生活观
    程序员,如何远离你的电脑
    生活管理实用技能
    分享共筑 : 伟大的理念
    技术人员,要学会关心别人
  • 原文地址:https://www.cnblogs.com/suisuisui/p/9771337.html
Copyright © 2011-2022 走看看