Vue路由器中的参数和查询之间的区别?

Posted

技术标签:

【中文标题】Vue路由器中的参数和查询之间的区别?【英文标题】:Difference between params and query in vue router? 【发布时间】:2017-07-30 04:12:06 【问题描述】:

我无法清楚地弄清楚 vue 路由器中的 params 和 query 之间的区别。我最近遇到一个让我困惑的案例。有页面A和页面B,我想从页面A路由到页面B,页面B使用动态路由(例如'/user/:id/:age/:address')并且数据来自params对象(get id,年龄,参数中的地址),当我重新加载页面 B 时,它失败并抛出 404 未找到(无法获取 /user/1/24/xxxstreet)。如果我使用查询而不是参数(例如'/user?id=1&age=24&address=xxxstreet'),我可以重新加载页面。那么有人可以帮我弄清楚vue路由器中params和query之间的区别吗?

【问题讨论】:

请向我们展示您的代码(路由器、组件...) 根据文档router.vuejs.org/api/#to User注册 【参考方案1】:

为了获得最佳的 REST API 设计实践,它们在不同的上下文中使用。

参数是您尝试获取的资源。 示例:user/:id 表示您正在访问用户资源。

当您想要过滤这些资源时使用查询。 示例:users/?age="20" 表示您正在过滤一组年龄等于 20 岁的用户。

【讨论】:

是 URL 中动态部分的参数,例如 :id(在 ? 之前),而 query 只是 ? 之后的部分 是的,没错。

以上是关于Vue路由器中的参数和查询之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 nuxtjs 中的参数路由器之间添加查询

vue 路由四种方式 (带参数)跳转

Vue Router路由传参三种方法及区别

vue路由传参params和query区别

Vue Router路由中 的$route.params和$route.query传参的区别和使用示例

Vue路由器。使用查询参数调用 this.$router.push() 会导致双重路由器更​​新