• 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传递给路由组件(常用)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    无CUDA支持的dlib库的安装与使用
    NextJS开发:nextjs中使用CkEditor5
    币圈是什么意思?币圈开发
    电脑桌面记事本便签软件哪个好?
    C++,内联函数、对象、类、this
    23 Vue 项目初始化和gitee项目同步
    C++------继承
    TiniXml C++ 开源代码中的几个概念
    本地私域线上线下 线上和线下的小程序
    11.3 - 三级模式/两级映像 11.4 - 数据库管理系统 11.5 - 完整性约束 11.6 - 分布式数据库 11.7 - DBA
  • 原文地址:https://blog.csdn.net/bying666/article/details/126939220