路由传参

路由传参总结

1. 路由跳转的两种方式

  • 声明式导航:点击链接实现导航的方式,a或者router-link
  • 编程式导航:调用API实现导航的方式,this.$router.push()或者location.href

2. 路由传参方式

2.1 params传参-显示参数

显示参数的意思就是:会在URL地址中展示出参数

  • 声明式router-link:

    code

    • 父组件: 通过router-link的to属性进行传参
    • 路由配置文件中:要对子路由提前配置好参数
    • 子组件: 通过$route.params.xxx进行参数的获取
  • 编程式this.$route.push:

    和上面大差不差…

    code

2.2 params传参-不显示参数

如果不向在URL中显示参数:需要通过路由的别名name进行传值

  • 声明式router-link:

    code

    • 父组件router-link的to属性需要动态绑定传对象形式的参数
    • 路由配置文件中:给路由规则相同的name值
    • 子组件: 通过$route.params.xxx进行参数的获取
  • 编程式this.$route.push:

    code

2.3 query传参

query作为查询参数是肯定会显示在URL中的,以?开始。

  • 声明式router-link: (类比2.2的声明式)

    code

    • 父组件router-link的to属性需要动态绑定传对象形式的参数,只不过params属性换成query属性进行赋值传递
    • 路由配置文件中:给路由规则相同的name值
    • 子组件: 通过$route.query.xxx进行参数的获取
  • 编程式this.$route.push:

    code

3. 常见面试题

  • 路由传递参数(对象形式)path是否可以结合params参数一起使用?

    达咩!!!path的写法传参需要在规则里进行占位而不能使用params一起使用

  • 如何指定params参数可传不可传?

    如果路由要求传递params参数但是你就不传,URL会出问题。

    在配置路由的时候,占位后面加?

  • 如果params传空字符串怎么办?

    使用undefined

  • 路由组件能不能传递props数据?

    可以

reference: 008-尚硅谷-尚品汇-路由传递参数_哔哩哔哩_bilibili


路由传参
http://example.com/2023/07/18/路由传参/
Author
John Doe
Posted on
July 18, 2023
Licensed under