当前位置: 首页 > Web前端 > HTML

[React]react-router-domv6路由参数

时间:2023-03-28 16:30:17 HTML

共有三种方式:1、搜索参数2、params参数3、状态参数1、搜索参数(查询格式,?+&)参数页面import{useNavigate,createSearchParams}来自“react-router-dom”;1.1中有3种放参数的方式直接拼接constPages=()=>{constnavigate=useNavigate();constid="1";const等级="2";constgoTo=()=>{navigate(`/class?id=${id}&grade=${grade}`)}}1.2路径名+拼接searchconstPages=()=>{constnavigate=useNavigate();constid="1";const等级="2";constgoTo=()=>{navigate({pathname:"/class",search:`?id=${id}&grade=${grade}`})}}1.3pathname+createsearch(推荐)constPages=()=>{constnavigate=useNavigate();constparams={id:'1',等级:'2'};constgoTo=()=>{navigate({pathname:"/class",search:`?${createSearchParams(params)}`})}}从"react-r"接收页面导入{useSearchParams}外部dom";constToPages=()=>{const[searchParams]=useSearchParams();constid=searchParams.get("id");constgrade=searchParams.get("grade");return(

id:{id},grade:{grade}

)}}后面会省略各种不必要的代码,保留关键部分2.Params参数传递(restful格式),需要Route上要显示的:params路由部分}/>parameterpageimport{useNavigate}from"react-router-dom";constgoTo=()=>{navigate(`/class/${id}/${grade}`)}接收页面import{useParams}from"react-router-dom";constToPages=()=>{const{id,grade}=useParams();return(

id:{id},grade:{grade}

)}}3.状态参数传递参数pageimport{useNavigate}from"react-router-dom";constgoTo=()=>{navigate(`/class`,{state:{id,grade}})}接收页面import{useLocation}来自“react-router-dom”;constToPages=()=>{constlocation=useLocation();const{id,grade}=location.state;return(

id:{id},grade:{grade}

)}}注意:1.constparams={id:'1',grade:'2'};createSearchParams(params)这里key对应的value在ts2中要求是字符串,state参数不要求value是字符串。3、对于search和params参数,参数出现在url中,页面刷新时不会丢失。但是如果不通过url传递state参数来刷新页面,参数就会丢失。同步更新你的语雀https://www.yuque.com/diracke后...