Xin's blog Xin's blog
首页
  • 前端文章

    • HTML
    • CSS
    • JavaScript
    • Vue
    • 组件与插件
    • CSS扩展语言
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架面试题汇总
  • 基本面试题
  • 进阶面试题
  • 其它
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 前后端联调
  • mock.js
  • 奇技淫巧
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

Xin

英雄可不能临阵脱逃啊~
首页
  • 前端文章

    • HTML
    • CSS
    • JavaScript
    • Vue
    • 组件与插件
    • CSS扩展语言
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架面试题汇总
  • 基本面试题
  • 进阶面试题
  • 其它
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 前后端联调
  • mock.js
  • 奇技淫巧
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • HTML

  • CSS

  • JavaScript

  • Vue

    • 知识点

      • filters过滤器的使用
      • watch的使用
      • createElement函数创建虚拟DOM
      • mixin的使用
      • 插槽
      • vuex的基本使用
      • 路由传参
        • $router和$route的区别
        • query和params传参的区别
        • 总结
        • 参考链接
      • 组件通信之 $attrs 和 $listeners
      • 组件通信之 $parent 和 $children
      • 组件通信之 provide 和 inject
      • 使用vue的model选项实现组件通信
      • v-on监听多个方法
      • axios的基本使用
      • vue中的鼠标事件、鼠标滚轮事件、键盘事件
      • Vue为什么要求组件模板只能有一个根元素
      • Vue中data为什么必须是一个函数?
      • Vue中的scoped和scoped穿透
      • vue-router传参,在页面刷新后数据格式改变的问题
      • 相同的组件,vue会直接复用
      • Vue项目使用mock数据的几种方式
      • Vue CLi3 修改webpack配置
    • 方法

    • vue API

  • 组件与插件

  • css扩展语言

  • 学习笔记

  • 前端
  • Vue
  • 知识点
ctrlwin
2021-03-24

路由传参

# 路由传参

# $router和$route的区别

$router:用于操作路由对象

  this.$router.push({
        name:'hello',
        params:{
            name:'word',
            age:'11'
       }
  })
1
2
3
4
5
6
7

$route:用于读取路由对象

  this.name = this.$route.params.name;
1

# query和params传参的区别

  1. query query传参使用path引入(实测用name引入也可以)

    query方式参数会在地址栏看到参数

    // 路由配置(仅供参考)
    {
        path: "index",
        name: "pdp",
        component: () => import("@/views/pdp/index"),
        meta: { title: "pdp" },
    },
    
    // 跳转页面并携带参数
    this.$router.push({
        path: 'pdp', // 这里使用name也可以跳转+传参
        query: {
            id:'20220516',
            name: 'update'
        }
    })
    
    // 接收参数
    this.id = this.$route.query.id;
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
  2. params

    params传参使用name引入

    params方式参数不会在地址栏中展示

    params是路由的一部分,必须要在路由后面添加参数名(这样地址栏还是可以看到参数)

    // 路由配置(仅供参考)
    {
        path: "index/:id/:name,
        name: "pdp",
        component: () => import("@/views/pdp/index"),
        meta: { title: "pdp" },
    },
    
    // 跳转页面并携带参数
    this.$router.push({
        name: 'pdp', // 这里使用name也可以跳转+传参
        params: {
            id:'20220516',
            name: 'update'
        }
    })
    
    // 接收参数
    this.id = this.$route.params.id;
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

# 总结

  1. 传参可以使用params和query两种方式;
  2. 使用params传参只能用name来引入路由,否则页面会是undefined;
  3. 使用query传参可以使用name引入路由也可以使用path;
  4. params是路由的一部分,必须要在路由后面添加参数名。query是拼接在URL后面的参数,没有也可以;
  5. query相当于get请求,页面跳转时会在地址栏看到参数;而params相当于post请求,地址栏看不到参数。

# 参考链接

Vue Router 的params和query传参的使用和区别(详尽) (opens new window)

在GitHub上编辑 (opens new window)
#vue
上次更新: 5/27/2022, 4:57:31 PM

← vuex的基本使用 组件通信之 $attrs 和 $listeners→

最近更新
01
createElement函数创建虚拟DOM
05-26
02
clipboard 剪切板属性
05-26
03
vue的权限管理
05-16
更多文章>
Theme by Vdoing | Copyright © 2021-2022 Xin | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×