vue: query和params的区别

91 阅读1分钟

路由传参时有query和params

query传参:

this.$router.push('/login?name=jackson&age=19')

this.$router.push({
    path:'/login',
    query:{
        name:'jackson',
        age:19
    }
})

this.$router.push({
    name:'login',
    query:{
        name:'jackson',
        age:19
    }
})

获取:

this.$route.query.name

params传参

this.$router.push({
    name:'login',
    params:{
        name:'jackson',
        age:19
    }
})

获取:

this.$route.params.name

区别:

  1. params传参,必须要用命名路由方式传值。
  2. params传参,不会显示在地址栏中,刷新会丢失,可以配合localStorage使用 (1)A跳转路由到B,通过params传值 (2)B页面中,立刻通过this.$route.params获取参数 (3)拿到参数后,立刻存到本地(保证刷新丢失后,还能从本地拿)

区别汇总:

  1. params传参,必须用命名路由方式传参。
  2. params传参,不会显示在地址栏上,会保存在内存中,刷新会消失,可以配合本地路由存储。
  3. query的参数会显示在地址栏上,不会丢失。