vue-router params无法传参的问题

本文分享了在Vue.js项目中遇到的router params传参问题及解决方案。作者最初尝试使用params进行传参时遇到了参数丢失的情况,通过仔细检查发现路径名称的大小写不一致导致的问题,并给出了正确的配置方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*** 文章有误 ***
请参考这篇博客

最近需要使用router 的params传参,原来使用的是query传参,因为参数太多,而且query传参可以在地址栏看到,所以想要使用params传参。

这是我开始写的代码:

this.$router.push({
          path:'Test',
          name:"Test",
          params:{           
            name: this.formLine.qudao
          }

这样是可以跳转到另外一个页面的,但是参数取不到,控制台输出的router是这样的:

 {
	path:'Test',
	name:undefiend,
	params:{}
	....
	}

name没有值,params里面也没有值。觉得非常奇怪,别人都没问题,为什么我用就有问题,肯定是那里配错了。

网上百度了很久发现,在router中需要这样配置:

原来的配置:

{
			path: "/test",			
			component: test
		},

修改后的配置:

{
			path: "/test",
			name:"test",
			component: test
		},

可是这样仍然不对,因为能够跳转页面,一直都没觉得是路径错了,后来检查发现一个t是大小,另外一个是小写,虽然能跳转,但是参数会有问题,修改代码如下就可以了。

this.$router.push({
          path:'test',
          name:"test",
          params:{            
            name: 123
          }

        })
### 实现 Vue-Router 4.5.0 中的路由参数传递 在 Vue-Router 4.5.0 版本中,可以通过多种方式来实现路由之间的参数传递。以下是几种常见的方法及其具体实现。 #### 使用 `params` 参数传递 通过定义动态路径片段并使用 `$route.params` 来获取这些参数: ```javascript // 定义参数的路由规则 const routes = [ { path: '/user/:id', name: 'User', component: UserComponent, }, ]; // 获取 params 参数 import { useRoute } from 'vue-router'; export default { setup() { const route = useRoute(); // 打印 id 参数 console.log(route.params.id); } }; ``` 这种方式适用于需要在 URL 地址栏显示参数的情况[^2]。 #### 使用查询字符串 (`query`) 进行传参希望参数出现在 URL 的一部分而是作为附加信息时,可以采用 query 方式: ```javascript // 导航到有查询参数的目标页面 this.$router.push({ name: 'search', query: { q: 'Vue' } }); // 接收方组件内读取查询参数 import { useRoute } from 'vue-router'; setup() { const route = useRoute(); // 访问查询参数中的 q 值 console.log(route.query.q); } ``` 此方法适合用于分页、筛选条件等场景下需要改变历史记录条目的情况。 #### 利用命名视图与嵌套路由组合传递复杂结构化的数据 对于更复杂的多级或多区域布局需求,则可借助于命名视图以及子路由的方式来进行更为灵活的数据交换: ```javascript { path: '/', components: { default: HomeView, user: UserProfile, }, children:[ { path:'profile', component:ProfileDetail } ] } ``` 上述例子展示了如何在一个父级路由之下设置多个具有同名称的子视图,并且可以在它们之间共享状态或进一步细化各自的逻辑处理流程[^1]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值