Vue router中params和query的区别(学习笔记)

本文解析了在前端路由中params与query传参的区别。params是动态路由的一部分,必须在路由配置中定义;而query参数则附加在URL后面,不需在路由中声明。文章还讨论了编程式导航中params的特殊用法。

params传参和query传参有什么区别?

1、params是路由的一部分,如果你的路由是动态路由就必须要有。query是拼接在url后面的参数,没有也没关系。

params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。

比如:跳转/router1/:id

params不设置的时候,刷新页面或者返回参数会丢失。id这个参数是我们有设置在路由上面的,id2我没有设置在路由里面,跳转的时候,id2可以获取到,但是刷新之后id2就不见了。在项目中,我们总不可能要求用户不能刷新吧。

3.编程式的导航中,如果要传递params,只能提供name,不能使用path。这一点官网写得很清楚


 

回答: 在Vue Router中,router.push()方法用于导航到新的路由。它接受一个路由对象作为参数,该对象可以包含pathparams两个属性。path属性是指定要访问的路径,而params属性是传递给路由组件的参数。如果使用path属性传参,就需要通过name引入路由组件。例如,可以使用router.push({ path: '路径', params: { 参数名: 值 } })来进行导航,并使用route.params.参数名来获取参数的值。如果使用name属性传参,可以直接使用router.push({ name: '路由名称', params: { 参数名: 值 } })来进行导航,并使用route.params.参数名来获取参数的值。另外,还可以使用query属性通过URL传递参数,无论是使用name还是path引入路由组件都可以获取参数的值。例如,可以使用router.push({ path: '路径', query: { 参数名: 值 } })来进行导航,并使用route.query.参数名来获取参数的值。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Vue Routerrouter.push router.resolve 页面跳转](https://blog.youkuaiyun.com/weixin_60886885/article/details/130214341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [vue路由$router.push()使用params传参的实际开发笔记](https://blog.youkuaiyun.com/weixin_46442877/article/details/127731180)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值