VueRouter笔记 - 路由传参中query和params的区别

query和params的区别

1. 书写方式不同

  • query

    <router-link :to="{ name: 'thisIsAName', query: { id:'1234',age:'12' }}"/>
    

    配置路由

    {
    path: '/user',
    name: 'thisIsAName',
    component: User
    }
    
  • params

    <router-link :to="{ name: 'user', params: { id:'1234',age:'12' }}"/>
    

    配置路由

    {
    path:'/User/:id/:age',	//必须提前书写占位符
    name:'user',
    component:User
    }
    

2. 对path的支持

  • query

    支持以path形式设置路由

    <router-link :to="{ path: '/user', query: { id:'1234',age:'12' }}"/>
    

    配置路由

    {
    path: '/user', 
    name: 'anyway',
    component: User
    }
    

    当然,同时也支持name形式设置路由,见例1

  • params

    只支持以name形式设置路由,如果使用path形式设置,会直接忽略掉传递的参数

    <router-link :to="{ name: 'user', params: { id:'1234',age:'12' }}"/>
    

    配置路由

    {
    path:'/User/:id/:age',	//必须提前书写占位符
    name:'user',
    component:User
    }
    

3. url的显示与参数保存

以上面写的代码为例

  • query
    • 以name形式配置路由:http://localhost:8080/#/thisIsAName?id=1234&age=12
    • 以path形式配置路由:http://localhost:8080/#/user?id=1234&age=12
  • params
    • 以name形式配置路由:http://localhost:8080/#/user/1234/12
  • 通过params传递的参数,页面刷新一次就会消失,而query不会
posted @   Solitary-Rhyme  阅读(260)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示