当前位置:首页 > 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>
  );
}

路由路径的匹配规则

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

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

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

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

动态参数传递

嵌套路由支持动态参数:

<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 进行相对路径跳转:

react嵌套路由如何渲染

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

注意事项

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

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

相关文章

vue实现路由管理

vue实现路由管理

Vue 路由管理实现方法 Vue 路由管理通常通过 vue-router 库实现,以下是具体实现方式: 安装 vue-router 通过 npm 或 yarn 安装最新版本: npm instal…

vue的路由实现

vue的路由实现

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

vue路由实现tab

vue路由实现tab

Vue路由实现Tab的方法 在Vue中实现Tab功能可以通过路由和动态组件两种方式完成。以下是基于路由的实现方法: 使用Vue Router实现Tab 安装Vue Router并配置路由:…

vue实现路由监听

vue实现路由监听

路由监听实现方法 在Vue中可以通过Vue Router提供的导航守卫或响应式属性监听路由变化,以下是具体实现方式: 使用全局前置守卫 在路由配置文件中添加beforeEach钩子,适用于全局路由跳…

vue实现路由原理

vue实现路由原理

Vue 路由实现原理 Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。其核心原理基于前端路由技术,通过监听 URL 变化并动态渲染组件。 路由模式 Vue R…

vue实现路由标签

vue实现路由标签

路由标签的实现方法 在Vue中实现路由标签通常涉及使用vue-router和动态组件。以下是几种常见的方法: 使用router-link和keep-alive 通过router-link创建导航标签…