写点什么

Vue- 路由的 params 参数

作者:张三丰无极
  • 2023-06-09
    北京
  • 本文字数:972 字

    阅读完需:约 3 分钟

路由的 params 参数

路由传参是不只是有 query 参数,也有 params 参数,两者写法基本一致,都是分为字符串和对象的写法

携带 params 参数

如果直接这样使用 params 参数进行拼接,那么肯定是不行的,虽然自己知道前三个是路由,后面两个才是参数,但是系统并不知道,所以需要麻烦点,在路由配置里面


声明 params 参数

配置路由声明接收 params 参数


找到配置这个组件的地方,在对应的组件后使用占位符声明接收 params 参数


使用 params 参数

可以看到,在 $route 里面的 params 中,看到了传递的 params 参数



所以获取数据的时候,就可以使用 $route.params 获取了



现在传参的是死的数据,我们借助表达式传递,和 query 一样,通用分为字符串和对象写法

字符串写法

对象写法

对象写法的一个坑

特别注意:路由携带 params 参数时,若使用 to 的对象写法,则不能使用 path 配置项,必须使用 name 配置!但是如果使用 query,就没有这个限制


它不会报错,但是相关路由会消失跳转不了


总结

1 配置路由,声明接收 params 参数


{        path:'/home',        component:Home,        children:[                {                        path:'news',                        component:News                },                {                        component:Message,                        children:[                                {                                        name:'xiangqing',                                        path:'detail/:id/:title', //使用占位符声明接收params参数                                        component:Detail                                }                        ]                }        ]}
复制代码


2 传递参数


<!-- 跳转并携带params参数,to的字符串写法 --><router-link :to="/home/message/detail/666/你好">跳转</router-link>                                <!-- 跳转并携带params参数,to的对象写法 --><router-link         :to="{                name:'xiangqing',                params:{                   id:666,            title:'你好'                }        }">跳转</router-link>
复制代码


特别注意:路由携带 params 参数时,若使用 to 的对象写法,则不能使用 path 配置项,必须使用 name 配置!


3 接收参数:


$route.params.id$route.params.title
复制代码


发布于: 刚刚阅读数: 2
用户头像

还未添加个人签名 2022-10-26 加入

还未添加个人简介

评论

发布
暂无评论
Vue-路由的params参数_6月优质更文活动_张三丰无极_InfoQ写作社区