zoukankan      html  css  js  c++  java
  • 前端搬砖之回顾与总结: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中,页面刷新参数还可获取。

    上图:

  • 相关阅读:
    困扰我的c++语法
    C++ primer第三章作业
    渔夫捕鱼问题
    JAVA输入输出
    Python学习5——抽象,涉及抽象和结构、函数的自定义、参数、作用域、递归
    牛顿迭代法计算平方根
    Python学习4——条件、循环及其他语句总结
    Python补充1——Python的简单推导
    Python补充2——Python单行注释、整段注释使用方法
    Python补充3——Python中的 split() 函数
  • 原文地址:https://www.cnblogs.com/momozjm/p/13034727.html
Copyright © 2011-2022 走看看