当前位置:首页 > 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路由实现iframe

vue路由实现iframe

在Vue中实现iframe嵌入可以通过路由配置和组件动态加载来完成。以下是具体实现方法: 路由配置 在Vue Router的路由配置中,通过component属性动态加载iframe组件。需要将目标…

vue实现前端路由

vue实现前端路由

Vue 实现前端路由的方法 Vue 可以通过 Vue Router 实现前端路由管理。以下是具体实现步骤: 安装 Vue Router 通过 npm 或 yarn 安装 Vue Router: n…

react路由如何使用

react路由如何使用

React 路由的基本使用 React 路由通常通过 react-router-dom 库实现,用于管理单页面应用(SPA)中的页面导航。 安装 react-router-dom: npm ins…

vue实现路由跳转

vue实现路由跳转

路由跳转的基本方法 在Vue中,路由跳转可以通过vue-router实现。vue-router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的路由跳转方式。 声明式导航…

php 实现路由

php 实现路由

PHP 实现路由的方法 在 PHP 中实现路由功能可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 PHP 实现简单路由 通过解析 URL 并匹配对应的处理逻辑,可以实现基本的路由功能。以…

vue路由跳转实现

vue路由跳转实现

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