在ReactRouter教程页面上,他们说
当路线有孩子时,它会做两件事:
“它会筑巢”把我搞糊涂了那是什么意思?
发布于 2022-05-18 23:17:21
请考虑以下路由示例:
<Routes>
<Route path="/" element={<Layout />}>
<Route path="invoices" element={<Invoices />} />
<Route path="expenses" element={<Expenses />} />
</Route>
</Routes>
它嵌套URL ("/“+”费用“和"/”+“发票”)
嵌套路由呈现相对于父布局路由的路径。
<Routes>
<Route path="/" element={<Layout />}> // "/"
<Route path="invoices" element={<Invoices />} /> // "/invoices"
<Route path="expenses" element={<Expenses />} /> // "/expenses"
</Route>
</Routes>
当子路由匹配时,它将嵌套共享布局的UI组件:
至少,Layout
组件将为要呈现到的嵌套路由呈现一个Outlet
组件。它还可以呈现其他常见的UI元素,如网格布局、列、页眉/内容/页脚等。
示例布局组件:
import { Outlet } from 'react-router-dom';
const Layout = () => (
<>
<Navbar />
<Sidebar />
<Outlet /> // <-- nested routes components render here
<Footer />
</>
);
Layout
组件保持挂载状态,只有匹配的路由组件在更新URL路径时才会更改。
有关更多细节,请参见:
https://stackoverflow.com/questions/72299053
复制相似问题