前端搬砖之回顾与总结:vue路由传参的方式

前言

从17年毕业一直到现在都在前端搬砖,从小的外包公司到中大型的互联网公司都留下过搬砖的足迹。从业这三年,不管是jquery、react、vue、还是小程序啥的的项目都弄过,项目弄的虽然多了,但是却很杂,也没有一个一直维护并深入优化的项目。为了不让自己做过的项目随时间遗忘下去,特地将项目中遇到的问题或者知识记录在此,达到巩固的作用。

如果其中有一些错误,也恳请发现问题的朋友可以在评论区留下您的建议。

有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望可以帮到大家。

路由传递参数

一、路径传参

路径传参:
// 路由配置
{
    path: '/somePage/:id',
    name: 'somePage',
    component: () => import('somePage')
}
  
// 跳转前传参
const id = 1;
this.$router.push({
    path: `/somePage/${id}`
});

// 接收参数
created() {
    console.log(this.$route.params.id); // "1"
}

路径传参传递多个参数

// 路由配置
{
    path: '/somePage/:id/:name',
    name: 'somePage',
    component: () => import('somePage')
}
  
// 跳转前传参
const id = 1;
const name = '冲爷nb'
this.$router.push({
    path: `/somePage/${id}/${name}`
});

// 接收参数
created() {
    console.log(this.$route.params); // {id: "1", name: "冲爷nb"}
}

路径传参打乱参数位置

// 路由配置
{
    path: '/somePage/:id/path/:name',
    name: 'somePage',
    component: () => import('somePage')
}
  
// 跳转前传参
const id = 1;
const name = '冲爷nb'
this.$router.push({
    path: `/somePage/${id}/path/${name}`
});

// 接收参数
created() {
    console.log(this.$route.params); // {id: "1", name: "冲爷nb"}
}

name+params传递参数

通过路由属性中的name来确定匹配的路由,通过params来传递参数。这种情况下,参数不会显示在地址栏后面

// 路由配置
{
    path: '/somePage',
    name: 'somePage',
    component: () => import('somePage')
}
  
// 跳转前传参
const id = 1;
const name = "冲哥nb";
this.$router.push({
    name: "somePage",
    params: {
        id,
        name
    }
});

// 接收参数
created() {
    console.log(this.$route.params); // {id: "1", name: "冲爷nb"}
}

path+query传递参数

使用path来匹配路由,然后通过query来传递参数。这种情况下 query传递的参数会显示在url后面

// 路由配置
{
    path: '/somePage',
    name: 'somePage',
    component: () => import('somePage')
}
  
// 跳转前传参
const id = 1;
const name = "冲哥nb";
this.$router.push({
    path: "/somePage",
    query: {
        id,
        name
    }
});

// 接收参数
created() {
    console.log(this.$route.params); // {id: "1", name: "冲爷nb"}
}

优缺点总结:

  • 路径传参:可传递多个参数,参数显示在url中,页面刷新参数还可获取。
  • name+parmas:可传递多个参数,参数不会显示在url中,页面刷新参数不可获取。
  • path+query:可传递多个参数,参数显示在url中,页面刷新参数还可获取。

上图:

posted @ 2020-06-02 23:46  _林冲  阅读(364)  评论(0编辑  收藏  举报