飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

React中使用 react-router-dom 路由传参的三种方式详解【含V5.x、V6.x】!!!

时间:2021-12-18  作者:Jason1995  

路由传值的三种方式(v5.x)

params参数
//路由链接(携带参数):
<Link to=\'/demo/test/tom/18\'}>详情</Link> 
//或 <Link to={{ pathname:\'/demo/test/tom/18\' }}>详情</Link>

//注册路由(声明接收):
<Route path="/demo/test/:name/:age" component={Test}/>
    
//接收参数:
域名域名ms
search参数
//路由链接(携带参数):
<Link to=\'/demo/test?name=tom&age=18\'}>详情</Link>

//注册路由(无需声明,正常注册即可):
<Route path="/demo/test" component={Test}/>
        
//接收参数:
域名域名ch

//备注:获取到的search是urlencoded编码字符串(例如: ?id=10&name=zhangsan),需要借助query-string解析参数成对象
state参数
//路由链接(携带参数):
<Link to={{pathname:\'/demo/test\',state:{name:\'tom\',age:18}}}>详情</Link>

//注册路由(无需声明,正常注册即可):
 <Route path="/demo/test" component={Test}/>
    
//接收参数:
域名域名e

//备注:刷新也可以保留住参数

路由传值的三种方式(v6.x)

params参数
//路由链接(携带参数):
<Link to={{ pathname:`/b/child1/${id}/${title}` }}>Child1</Link>
//或 <Link  to={`/b/child1/${id}/${title}`}>Child1</Link> 

//注册路由(声明接收):
<Route path="/b/child1/:id/:title" component={Test}/>
    
//接收参数:
import { useParams } from "react-router-dom";
const params = useParams();
//params参数 => {id: "01", title: "消息1"}
search参数
//路由链接(携带参数):
 <Link className="nav" to={`/b/child2?age=20&name=zhangsan`}>Child2</Link>

//注册路由(无需声明,正常注册即可):
<Route path="/b/child2" component={Test}/>
        
//接收参数方法1:
import { useLocation } from "react-router-dom";
import qs from "query-string";
const { search } = useLocation();
//search参数 => {age: "20", name: "zhangsan"}

//接收参数方法2:
import { useSearchParams } from "react-router-dom";
const [searchParams, setSearchParams] = useSearchParams();
// 域名( 域名("id")); // 12

//备注:获取到的search是urlencoded编码字符串(例如: ?age=20&name=zhangsan),需要借助query-string解析参数成对象
state参数
//通过Link的state属性传递参数
 <Link
     className="nav"
     to={`/b/child2`}
     state={{ id: 999, name: "i love merlin" }} 
 >
    Child2
</Link>

//注册路由(无需声明,正常注册即可):
<Route path="/b/child2" component={Test}/>
    
//接收参数:
import { useLocation } from "react-router-dom";
const { state } = useLocation();
//state参数 => {id: 999, name: "我是梅琳"}

//备注:刷新也可以保留住参数

兄弟姐妹们,点波关注吧,一起分享有趣的技术!

掘金: https://域名/user/3034307824456296/posts 全部原创好文

CSDN: https://域名/qq_42753705?type=lately 全部原创好文

简书:https://域名/u/460b662a00d1 全部原创好文

segmentfault 思否: https://域名/u/jasonma1995/articles 全部原创好文

博客园 :https://域名/Jason1995/ 全部原创好文

标签:编程
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。