Vue路由传参(params 与 query)

理解:

路由传参分为 params 传参与 query 传参,params 传参类似于网络请求中的 post 请求,params 传过去的参数不会显示在地址栏中(但是不能刷新)。params 只能配合 name 使用,如果提供了 path,params 会失效。query 传参类似于网络请求中的 get 请求,query 传过去的参数会拼接在地址栏中(?name=xx)。query 较为灵活既可以配合 path 使用,也能配合 name 使用(亲测可用)。

问题一:name是什么呢?name 是配置路由时给 path 取的别名,方便使用。但要注意的是 “地址栏显示的路径始终是 path 的值”,如图定义路由

 方式一:通过 params 传参

页面一:声明式:router-link to 以对象形式跳转

<router-link :to="{name:'home',params:{name:'路由传参'}}">跳转传递参数</router-link>

页面二:接收用 this.$route.params.+传过来的“name”

console.log('接收到了传过来的值', this.$route.params.name)

在控制台可以看见传参是否成功:

通过 params 传参有一个缺点,就是刷新页面就获取不到参数了。

 方式二:通过 query 传参

页面一:声明式:router-link to 以对象形式跳转

<router-link :to="{name:'home',query:{name:'query路由传参'}}">query路由传参</router-link>

页面二:接收用 this.$route.query.+传过来的“name”

console.log('接收到了传过来的值', this.$route.query.name)

在控制台可以看见传参是否成功:

 可以看到刷新前后都可以打印出传过来的参数。

params 传参和query 传参的区别就是:发现query传参并没有会丢失  注意看地址栏 在一开始跳转的时候 发现就在url地址栏上以拼接了参数路径,而params跳转时没有,所以说这也是params动态路由传参和query动态路由传参的区别,也是params对象传参为什么会消失的问题。

猜你喜欢

转载自blog.csdn.net/H524268015wsw/article/details/128007330
今日推荐