当前位置:首页 > React

react嵌套路由如何渲染

2026-01-25 06:42:56React

React 嵌套路由的渲染方法

在 React 中实现嵌套路由通常使用 react-router-dom 库(v6 或更高版本)。嵌套路由允许在父路由组件内部动态渲染子路由组件,形成层级结构。

使用 Outlet 组件渲染嵌套内容

Outletreact-router-dom v6 引入的核心组件,用于在父路由中标记子路由的渲染位置。

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

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

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

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

路由路径的匹配规则

嵌套路由的路径会自动拼接父路由路径。例如:

react嵌套路由如何渲染

  • 父路由路径:/parent
  • 子路由路径:child
  • 完整路径:/parent/child

可通过 index 属性指定默认子路由:

<Route index element={<DefaultChild />} />

动态参数传递

嵌套路由支持动态参数:

react嵌套路由如何渲染

<Route path="/users/:id" element={<UserLayout />}>
  <Route path="posts" element={<UserPosts />} />
</Route>

访问 /users/123/posts 时,:id 参数可通过 useParams() 获取。

布局组合模式

嵌套路由常用于实现多层布局:

function Dashboard() {
  return (
    <div>
      <NavBar />
      <Sidebar />
      <Outlet /> {/* 内容区渲染子路由 */}
    </div>
  );
}

<Route path="/dashboard" element={<Dashboard />}>
  <Route path="analytics" element={<Analytics />} />
  <Route path="settings" element={<Settings />} />
</Route>

编程式导航控制

在嵌套组件中使用 useNavigate 进行相对路径跳转:

const navigate = useNavigate();
// 跳转到 /parent/child
navigate('child'); 

注意事项

  1. v6 版本不再支持 componentrender 属性,统一使用 element
  2. 所有路由定义必须包裹在 <Routes> 组件内
  3. 使用 createBrowserRouter 时需通过 children 属性定义嵌套
  4. 绝对路径需以 / 开头,否则会相对父路径拼接

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

相关文章

vue实现路由跳转

vue实现路由跳转

Vue 路由跳转的实现方式 在 Vue 中,路由跳转可以通过 vue-router 实现,以下是几种常见的方法: 声明式导航(模板中使用 <router-link>) 通过 <r…

vue实现路由导航

vue实现路由导航

Vue 路由导航的实现 Vue 中实现路由导航通常使用 Vue Router 库。以下是具体实现方法: 安装 Vue Router 在项目中安装 Vue Router 依赖: npm inst…

vue路由实现内部切换

vue路由实现内部切换

Vue路由实现内部切换的方法 Vue Router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的路由切换方式: 使用<router-link>组件 &l…

vue 路由 实现

vue 路由 实现

Vue 路由实现方法 Vue 路由通常通过 Vue Router 实现,它是 Vue.js 官方的路由管理器,用于构建单页应用(SPA)。以下是具体实现步骤: 安装 Vue Router 通过 n…

vue实现路由

vue实现路由

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

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…