react简单入门-react-router6.0及以上路由传参,以及接受参数

52 篇文章 0 订阅

前言:
本文章将讲述两种不同的方式的传参方法:

方法一:

类似:/home/123/home/123/zhangsan
先看demo:
根组件:
只关心我框出来的内容即可
在这里插入图片描述

Home组件:
在这里插入图片描述

HomeItem组件:
在这里插入图片描述

Invoice组件:
在这里插入图片描述

导入的依赖:
在这里插入图片描述
场景:
比如说,我想访问主页,但是每个人的主页信息是不同的,直接访问/home肯定是确定不了的,需要携带一些参数,比如idname之类的,这样你才能确定你访问是谁的主页,那路径就有可能是类似这样的/home/zhangsan,又或者说有可能会有同名的人,那我有可能会进行分组,想找具体组的具体的“zhangsan”,那就有可能访问的是/home/123/zhangsan

传参:其实上诉场景中就已经是传参了,比如访问/home/zhangsan/home/123/zhangsan,但实际情况中,往往不可能让用户直接在浏览器地址栏直接访问这两个路径,开发者也不会直接写死<Link to="/home/zhangsan">张三的主页</Link>,让用户去点,也许你可以尝试这样编程式导航,就类似Invoice组件中navigate("/home/123");一样效果如下:
请添加图片描述

接收参数:
其实在我的HomeItem组件中就已经体现到了,就是使用useParams()
在这里插入图片描述

方法二:

类似:/home?id=123&name=zhangsan&age=18

传参:
看dome:
只需要关注我框起来的地方即可:
在这里插入图片描述
所需要导入的依赖包:

import { useSearchParams } from "react-router-dom";

效果:
当我点击按钮的时候,浏览器的地址栏就会发生变化请添加图片描述

接收参数:
使用searchParams查询参数对象即可,打印该对象,发现其内部还是存在很多方法的:
在这里插入图片描述

放心,上面的所有方法我都帮你们总结了

  1. searchParams.forEach(); // 遍历该查询参数对象所有的参数组在这里插入图片描述
    在这里插入图片描述

  2. searchParams.append(“age”, 18); // 向查询参数对象后增加一组参数,该函数的两个参数分别为:(新增的字段,新增的字段的值),可重复追加在这里插入图片描述在这里插入图片描述

  3. searchParams.delete(“age”); // 删除查询参数对象的一组参数,如果age有多组,也是全都删除,但并不会删除地址栏在这里插入图片描述在这里插入图片描述

  4. searchParams.entries(); // 返回一个 该查询参数对象所有的参数组 的迭代器,每个参数组为一个数组,如:[“id”,“123”]在这里插入图片描述

在这里插入图片描述

  1. searchParams.get(“id”); // 获取该查询参数对象的首个为”id“的值在这里插入图片描述
    在这里插入图片描述

  2. searchParams.getAll(“id”); // 获取该查询参数对象的所有的“id”的值,返回一个数组,如:[“123”,“456”]在这里插入图片描述
    在这里插入图片描述

  3. searchParams.has(“id”); // 判断该查询参数对象是否存在“id”,存在则true,反之false在这里插入图片描述在这里插入图片描述

  4. searchParams.keys(); // 返回一个迭代器,装着该查询参数对象里面所有参数组的所有key在这里插入图片描述在这里插入图片描述

  5. searchParams.set(“id”, 789); // 设置该查询参数对象的具体字段的值,该函数两个参数分别为:(要修改的字段,要修改的字段期望的值),如果有重复的,将都会删除,合成一个在这里插入图片描述在这里插入图片描述

  6. searchParams.sort(); // 将该查询参数对象的key按ASCll码排序在这里插入图片描述在这里插入图片描述

  7. searchParams.toString(); // 直接把查询参数对象转为查询字符串,如:id=123&name=zhangsan&id=456在这里插入图片描述在这里插入图片描述

  8. searchParams.values(); // 返回一个迭代器,装着该查询参数对象里面所有参数组的所有value在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值