有时候页面与页面之间需要传参,一般会在路由跳转时携带参数。
vue-router提供了两种模式
第一种是使用 params
第二种是使用 query

// 使用params的路由
router.push({ name: 'user', params: { userId: '123' }})

// 使用query的路由  带查询参数,变成 /user?userId='123'
router.push({ name: 'user', query: { userId: '123' }})

两则的区别:

使用params的路由, 可以在页面使用this.$route.params.xxx 获取参数,相当于post方法,携带的参数不会明文出现在url上。但是刷新路由后,该参数会消失。 不适于需要刷新页面,又可以取数的。

使用query的路由,可以在页面使用this.$route.query.xxx 获取参数,相当于get方法。携带的参数能在url上直接看到。即使刷新页面,参数也会一直保留。

除了可以使用 query传参解决页面刷新导致数据丢失的问题,
也可以考虑使用 localStorage,sessionStorage来保存参数,也可以使用vuex的store来保存。

Logo

前往低代码交流专区

更多推荐