• vue实战-路由传递参数


    vue实战-路由传递参数

    前言问题

    1)路由跳转有几种方式?

    1:声明式导航:router-link(务必要带有to属性),可以实现路由的跳转
    2:编程式导航:利用的是组件实例的$router.push | replace方法,可以实现路由的跳转。(还可以写一些自己的业务)

    2)路由传参,参数有几种写法?

    1:params参数:属于路径当中的一部分,需要注意,在配置路由的时候,需要占位
    2:query参数:不属于路径当中的一部分,类似于ajax中的queryString /home?k=v&kv=,不需要占位

    1.路由传递参数(搜索框)

    1)首先在input处设置双向绑定,并定义一个数据接收

    在这里插入图片描述
    在这里插入图片描述
    设置一个接收参数是为了能在回调函数中使用并传到search页面。

    2)使用编程式导航方法跳转并传递参数

    在回调函数内使用编程式导航,携带params和query参数,使用对象传递法(常用)。
    **若要传递params参数,对象内的属性不能是path而应是name,**所以需要在router那设置Search组件路由跳转的name。
    在这里插入图片描述
    对象法传参:

     this.$router.push({
       name:'search',
       params:{keyword:this.keyword},
       query:{k:this.keyword.toUpperCase()}
     })
    
    • 1
    • 2
    • 3
    • 4
    • 5

    另外两种不常用的方法
    在这里插入图片描述

    3)在路由组件Search处验证测试是否传参成功

    在这里插入图片描述
    测试结果
    在这里插入图片描述
    成功传参啦!

    2.路由传参相关面试题

    1)路由传递参数(对象写法)path是否可以结合params参数一起使用?

    否,params参数只能与name一起使用.

    2)如何指定params参数可传可不传?

    在这里插入图片描述
    在配置路由时,在占位的后面加上一个问号[params可以传递或者不传递]

    3)params参数可以传递也可以不传递,但是如果传递是空串,如何解决?

    使用undefined解决
    在这里插入图片描述

    4)路由组件能不能传递props数据?

    可以,三种方式
    1:布尔值写法:params
    在router中配置props:true
    在这里插入图片描述
    在search组件中配置props参数
    在这里插入图片描述
    测试
    在这里插入图片描述
    2:对象写法:额外的给路由组件传递一些props
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    3:函数写法:可以params参数,query参数,通过props传递给路由组件(常用)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    云上的云服务器、裸金属以及容器可以为 Lakehouse 提供海量的计算资源
    【Java面试题】请说一下Netty中Reactor模式的理解
    Android.mk中C++使用
    2023年全国职业院校技能大赛信息安全管理与评估网络安全渗透任务书
    第1关:ZooKeeper初体验
    rsync远程同步
    Java版本+企业电子招投标系统源代码+支持二开+招投标系统+中小型企业采购供应商招投标平台
    原理Redis-ZipList
    Kubernetes inotify watch 耗尽
    springboot文件下载功能开发!
  • 原文地址:https://blog.csdn.net/bying666/article/details/126939220