当前位置:   article > 正文

Vue Router参数传递params和query_getrouterparams()

getrouterparams()

Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。


方法一

param传递参数(get方式)

  1. getDescribe(id) {
  2. //直接调用$router.push 实现携带参数的跳转
  3. this.$router.push({
  4. path: `/describe/${id}`,
  5. //this.$router.push({ name: 'user', params: { userId }}) // -> /user/123
  6. })
  7. //需要路由中进行如下配置
  8. {
  9. path: '/describe/:id',
  10. name: 'Describe',
  11. component: Describe
  12. }
  13. //取出参数
  14. this.$route.params.id
  1. 使用这种传参方式,要在路由中进行配置(如"/:id"),params是路由的一部分(地址栏中显示/describe/id的形式),必须要在路由后面添加参数名。params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。
  2. 使用params传参只能用name来引入路由,即push里面只能是name:’xxxx’,不能是path:’/xxx’,因为params只能用name来引入路由,如果这里写成了path,接收参数页面会是undefined(由于动态路由也是传递params的,所以在 this.$router.push() 方法中 path不能和params一起使用,否则params将无效
  3. 如果路由中不进行/:id的配置,页面的第一次跳转正常,地址栏中没有参数,但是一刷新页面就不会接受到参数
  4. 如果参数不是必传的参数,可进行如下配置
  1. //需要路由中进行如下配置
  2. {
  3. path: '/describe/:id?',
  4. name: 'Describe',
  5. component: Describe
  6. }

如果 props 被设置为 trueroute.params 将会被设置为组件属性。请看如下代码

  1. //?问号的意思是该参数不是必传项
  2. //多个参数用/:id连接
  3. //path: '/Driver/CarManager/CarSetting/:car_id/:page_type',
  4. {
  5. path: 'test/:name?',
  6. name: 'test',
  7. component: 'test.vue',
  8. props: true,
  9. },
  10. props:{name:{required:false,default:''}} (页面刷新不消失,可以在路由配置中设置参数)

 

方法二

使用query进行传递(post方式)

  1. //传参时
  2. this.$router.push({
  3. path: '/describe',
  4. query: {
  5. id: id
  6. }
  7. })
  8. //路由中的配置(和不传参的一样哈)
  9. {
  10. path: '/describe',
  11. name: 'Describe',
  12. component: Describe
  13. }
  14. //取出参数时
  15. this.$route.query.id
  1. query传递参数的方式,参数显示在地址栏中(如地址栏显示"/describe?id=88"),类似get方式,通过URL传参
  2. query传递参数用path和那么的方式都可以,参数可以不传
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/338319?site
推荐阅读
相关标签
  

闽ICP备14008679号