当前位置:首页 > React

react如何嵌套路由

2026-01-24 14:12:35React

嵌套路由的实现方法

在React中,嵌套路由通常通过react-router-dom库实现。嵌套路由允许在父路由组件内部定义子路由,形成层级结构。

安装react-router-dom

确保项目中已安装react-router-dom

npm install react-router-dom

基本嵌套路由配置

使用RoutesRoute组件定义嵌套路由结构。父路由组件通过Outlet渲染子路由内容。

import { BrowserRouter, Routes, Route, Outlet } from 'react-router-dom';

function Parent() {
  return (
    <div>
      <h2>Parent Component</h2>
      <Outlet />  {/* 子路由内容将在此处渲染 */}
    </div>
  );
}

function Child() {
  return <h3>Child Component</h3>;
}

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/parent" element={<Parent />}>
          <Route path="child" element={<Child />} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
}

动态嵌套路由

嵌套路由支持动态路径参数,通过useParams获取参数值。

import { useParams } from 'react-router-dom';

function UserProfile() {
  const { userId } = useParams();
  return <div>User ID: {userId}</div>;
}

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/users">
          <Route path=":userId" element={<UserProfile />} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
}

嵌套路由的索引路由

索引路由指定父路由路径下的默认子路由,使用index属性。

function Dashboard() {
  return <h3>Dashboard Home</h3>;
}

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/dashboard" element={<Parent />}>
          <Route index element={<Dashboard />} />
          <Route path="settings" element={<Settings />} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
}

嵌套路由的布局模式

通过布局组件包裹嵌套路由,实现共享的UI结构。

function Layout() {
  return (
    <div>
      <nav>Navigation Bar</nav>
      <Outlet />
    </div>
  );
}

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route element={<Layout />}>
          <Route path="/" element={<Home />} />
          <Route path="/about" element={<About />} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
}

嵌套路由的编程式导航

使用useNavigate钩子实现编程式导航。

react如何嵌套路由

import { useNavigate } from 'react-router-dom';

function Home() {
  const navigate = useNavigate();
  return (
    <button onClick={() => navigate('/parent/child')}>
      Go to Child
    </button>
  );
}

标签: 嵌套路由
分享给朋友:

相关文章

vue路由实现iframe

vue路由实现iframe

Vue 路由实现 iframe 的方法 在 Vue 项目中,可以通过路由配置和组件的方式实现 iframe 的嵌入。以下是具体实现步骤: 创建 iframe 组件 新建一个 Vue 组件用于承载 i…

react路由如何刷新

react路由如何刷新

React 路由刷新方法 在 React 中,路由刷新通常涉及以下几种场景和解决方案: 强制重新加载当前页面 使用 window.location.reload() 可以强制刷新整个页面,但会丢失…

vue 实现动态路由

vue 实现动态路由

动态路由的实现方法 Vue中实现动态路由通常涉及以下关键步骤,结合Vue Router的API和异步加载逻辑完成。 基础配置 安装Vue Router并初始化路由实例。在router/index.j…

vue路由实现登录

vue路由实现登录

路由守卫实现登录验证 在Vue项目中,可以通过路由守卫(Navigation Guards)来实现登录验证逻辑。路由守卫能在路由跳转前、跳转后或跳转时进行拦截处理。 安装路由依赖 npm inst…

Vue中实现路由

Vue中实现路由

Vue 路由的实现方法 在 Vue 中实现路由通常使用 Vue Router 库。以下是具体的实现步骤: 安装 Vue Router 通过 npm 或 yarn 安装 Vue Router: n…

vue的路由实现

vue的路由实现

Vue 路由的实现方式 Vue 路由通常通过 Vue Router 实现,这是 Vue.js 官方提供的路由管理器。以下是 Vue 路由的核心实现步骤和配置方法。 安装 Vue Router 使用…