📅  最后修改于: 2023-12-03 14:47:48.697000             🧑  作者: Mango
react-router-dom
Switch
Switch
组件是 react-router-dom 库提供的一个重要组件,用于包裹路由组件,并选择渲染匹配的第一个子路由。它允许我们在路径匹配时渲染单个路由,而不是多个路由。
在一个 Switch
组件中,会遍历所有的子组件并选择第一个匹配的路由进行渲染。如果没有找到匹配的路由,则可以选择渲染一个默认的组件。
Switch
组件中以下示例展示了如何使用 Switch
组件:
import { Switch, Route } from 'react-router-dom';
function App() {
return (
<div className="App">
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/products" component={Products} />
<Route component={NotFound} />
</Switch>
</div>
);
}
在上面的示例中,我们在 Switch
组件中定义了几个 <Route>
子组件。Switch
会按顺序遍历所有子组件,并渲染与当前路径匹配的第一个子组件。如果没有找到匹配的路径,则会渲染 NotFound
组件。
Switch
只能有直接的 <Route>
子组件,不支持嵌套的 Switch
。Switch
组件在渲染过程中会自上而下匹配路径,只渲染第一个匹配的路由组件。因此,如果你想要多个路径都匹配并渲染相同组件,你需要手动创建多个 <Route>
组件。exact
属性,Switch
组件会匹配第一个具有相同路径前缀的路由。Switch
中添加一个没有 path
属性的 <Route>
组件。