react-router-dom中的match

来源:5-23 集成react-router

璀璨的光

2018-11-12

老师你好,我问下react-router-dom中的这个match对象到底是个什么东西,老师能详细解释下吗,最好有代码

写回答

1回答

吕小鸣

2018-11-13

你好,match是一个匹配路径参数的对象,它有一个属性params,里面的内容就是路径参数,除常用的params属性外,它还有url、path、isExact属性。

在使用React Router的组件里获取到match:

this.props.match;

params: 很好理解,可以在里面拿到页面当前url上的一些参数,例如?a=1&b=2这种以键值对存在的。

url:返回URL中匹配部分的字符串,url实际的值。用于创建嵌套的<Link>很有用。

例如:

<Link to={`${match.url}/4`}>{find(id).name}</Link>

path:返回Route中path属性的值,用于匹配路径模式。用来创建嵌套的<Route>。

举个例子:

路由"/users/:userId"。

match.path的返回值将是 "/users/:userId"。

而match.url 的返回值将是:userId的值,例如"users/5"。

isExact:标识进入这个router的是否是完全匹配进来的,这个和Route组件上的exact是对应的哦

<Route exact path="/abc" component={Home}/>

当然,所有的字面解释都是苍白的,到不如尝试自己写一个demo来学习,印象更深刻哦。

参考文档:https://reacttraining.com/react-router/web/api/match

0
0

移动Web App开发之实战美团外卖

运用React全家桶技术,从0到1学习全面的移动 Web APP 开发技术。

389 学习 · 235 问题

查看课程