河马日记

vuePress-theme-reco Mr.Tian    2019 - 2023
河马日记 河马日记

Choose mode

  • dark
  • auto
  • light
首页
分类
  • 后端
  • 前端
  • 随笔
  • 前后端结合
标签
时间线
联系方式
  • 微信
author-avatar

Mr.Tian

15

文章

5

标签

首页
分类
  • 后端
  • 前端
  • 随笔
  • 前后端结合
标签
时间线
联系方式
  • 微信
  • vue页面路由跳转

    • router-link
      • 当前页面跳转
      • 页面跳转并新建页面
    • methods中定义跳转方法
      • 当前页面跳转
      • 页面跳转并新建页面
    • 新页面接收参数

    vue页面路由跳转

    vuePress-theme-reco Mr.Tian    2019 - 2023

    vue页面路由跳转


    Mr.Tian 2019-11-09 23:57:58 vue

    vue页面路由跳转我主要是用以下几种方式,跳转页面需要提前将页面路径配置在路由中。

    # router-link

    # 当前页面跳转

    当前页面跳转时,可以通过路由名字或者路由路径跳转,使用params传递参数,参数不会暴露,使用query,参数会暴露在地址中,数据泄露,不安全。

    使用路由名字跳转,参数隐藏:

    <router-link :to="{ name: '跳转到页面的路由名字', params: { id: 1 }}">当前页面跳转,参数隐藏传递</router-link>
    
    1

    使用路由路径跳转,参数隐藏:

    <router-link :to="{ path: '跳转到页面的路由路径', params: { id: 1 }}">当前页面跳转,参数隐藏传递</router-link>
    
    1

    使用路由名字跳转,参数暴露:

    <router-link :to="{ name: '跳转到页面的路由名字', query: { id: 1 }}">当前页面跳转,参数暴露传递</router-link>
    
    1

    使用路由路径跳转,参数暴露:

    <router-link :to="{ path: '跳转到页面的路由路径', query: { id: 1 }}">当前页面跳转,参数暴露传递</router-link>
    
    1

    # 页面跳转并新建页面

    新建页面时,发现只能用query暴露传递参数,使用params传递新页面接收不到传递的值,显示为undefined

    使用路由名字跳转,参数暴露:

    <router-link target="_blank" :to="{ name: '跳转到页面的路由名字', query: { id: 1 }}">新建页面打开,参数暴露传递</router-link>
    
    1

    使用路由路径跳转,参数暴露:

    <router-link target="_blank" :to="{ path: '跳转到页面的路由路径', query: { id: 1 }}">新建页面打开,参数暴露传递</router-link>
    
    1

    # methods中定义跳转方法

    # 当前页面跳转

    通过router.push实现跳转,在需要跳转处调用该方法,并且可以记录原页面,支持页面返回,传值支持params和query。

    使用路由名字跳转

    toNewPage() {
      var params = {};
      params.id = id;
      sessionStorage.setItem("backPath", this.$route.path);
      this.$router.push({ 
        name: '跳转到页面的路由名字',
        params: params})
    }
    
    1
    2
    3
    4
    5
    6
    7
    8

    使用路由路径跳转

    toNewPage() {
      var params = {};
      params.id = id;
      sessionStorage.setItem("backPath", this.$route.path);
      this.$router.push({ 
        path: '跳转到页面的路由路径',
        params: params})
    }
    
    1
    2
    3
    4
    5
    6
    7
    8

    # 页面跳转并新建页面

    通过router.resolve实现跳转,在需要跳转处调用该方法,传值仅支持query。

    使用路由名字跳转

    toNewPage() {
      window.open(this.$router.resolve({name: '跳转到页面的路由名字'}).href,'_blank')
    }
    
    1
    2
    3

    使用路由路径跳转

    toNewPage() {
      window.open(this.$router.resolve({path: '跳转到页面的路由路径'}).href,'_blank')
    }
    
    1
    2
    3

    # 新页面接收参数

    无论是通过params还是query传参,在新页面中都通过this.$route.params和this.$route.query获取。