Route的三种渲染方式

1.component

这是最常用也最容易理解的方式,给什么就渲染什么

2.render

render的类型是function,Route会渲染这个function的返回值。因此它的作用就是附加一些额外的逻辑

1
2
3
4
<Route path="/home" render={() => {
console.log('额外的逻辑');
return (<div>Home</div>);
}/>

3.children

这是最特殊的渲染方式。一、它同render类似,是一个function。不同的地方在于它会被传入一个match参数来告诉你这个Route的path和location匹配上没有。二、第二个特殊的地方在于,即使path没有匹配上,我们也可以将它渲染出来。秘诀就在于前面一点提到的match参数。我们可以根据这个参数来决定在匹配的时候渲染什么,不匹配的时候又渲染什么。

1
2
3
4
5
6
7
// 在匹配时,容器的calss是light,<Home />会被渲染
// 在不匹配时,容器的calss是dark,<About />会被渲染
<Route path='/home' children={({ match }) => (
<div className={match ? 'light' : 'dark'}>
{match ? <Home/>:<About>}
</div>
)}/>
请我吃辣条吧~~
-------------本文结束感谢您的阅读-------------