在组件上使用Match
和Miss
组件有什么好处?我似乎在react-router docs 中找不到任何关于此的文档。react-router
Router
我的问题来自于查看react-universally样板,更准确地说,通过查看这里:https : //github.com/ctrlplusb/react-universally
在组件上使用Match
和Miss
组件有什么好处?我似乎在react-router docs 中找不到任何关于此的文档。react-router
Router
我的问题来自于查看react-universally样板,更准确地说,通过查看这里:https : //github.com/ctrlplusb/react-universally
<Match>
并且<Miss>
是 React Router v4 的 alpha 版本中的组件。
在测试阶段,<Match>
已更名为<Route>
(和它的props已经改变,因此 pattern
现在是path
和exactly
是exact
)。该<Miss>
组件已被完全移除。相反,您应该使用一个<Switch>
语句,它只会呈现匹配的第一个<Route>
(或<Redirect>
)。您可以添加一个无路径组件作为<Switch>
的路由的最后一个子项,并且当前面的 s 都不<Route>
匹配时它将呈现。
您可以查看API 文档以获取更多详细信息。
<Switch>
<Route exact path='/' component={Home} />
<Route path='/about' component={About} />
// The following <Route> has no path, so it will always
// match. This means that <NoMatch> will render when none
// of the other <Route>s match the current location.
<Route component={NoMatch} />
</Switch>
要添加到最后一篇文章,您会在react-router-dom
. 它不再在 react-router 核心库中。
这是我发现的一种适用于react路由的模式。基本上和之前的海报一样。您需要构建包含的附加组件。
import {BrowserRouter as Router, Route, Switch} from 'react-router-dom';
{/* 在此处导入您的组件 */}
class Root extends React.Component{
render(){
return(
<Router>
<Switch>
<Route exact path='/' component={App} /> )} />
<Route path="/some-component" component={SomeComponent} />
<Route component={NotFound}/>
</Switch>
</Router>
);
}
}
render(<Root/>, document.querySelector('#main'));