按需分割React 6与React Router页面

只需一种版本。请用中文将以下内容重新表述。

"react": "^18.2.0",
"react-dom": "^18.2.0",

常规路由

不使用BrowserRouter

  <Routes>
    <Route path="/" element={<Home />} />
    <Route path="/page1" element={<Page1 />} />
    <Route path="/page2" element={<Page2 />} />
  </Routes>

经常被推荐的巢

使用以下方法,会同时显示父页面的内容。

// page1/nestでアクセス可能
<Route path="/page1" element={<Page1 />}>
  <Route path="nest" element={<Nest />} />
</Route>
// NestがPage1にくっつく形で処理される
// 親であるPage1でOutletを使用する
import { Outlet } from "react-router-dom";
const Page1 = () => {
  return (
  <>
    ...
    // returnの1番最後に書く
    <Outlet />
  </>
  )
}

只显示独立页面,不显示母页面。

大部分被推荐的方法是通过传递组件,并显示传递的组件作为子组件的方法。可能因为此方法需要考虑较多的编写量,所以不适用于以下情况吗?个人而言,我喜欢这种类似于Rails的方法,但是否有某种理由呢?

<Routes>
  <Route path="/" element={<Home />} />
  <Route path="/page1" element={<Page1 />} />
  <Route path="/page1/:id" element={<User />} />
  <Route path="/page2" element={<Page2 />} />
  <Route path="/page2/nest" element={<Nest />} />
  <Route path="/*" element={<NotFound />} />
</Routes>
bannerAds