当前位置:首页 > 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渲染子路由内容。

react如何嵌套路由

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属性。

react如何嵌套路由

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钩子实现编程式导航。

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

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

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

相关文章

vue实现户籍系统路由实现

vue实现户籍系统路由实现

户籍系统路由实现(Vue.js) 户籍系统通常需要管理居民信息、户籍变动、统计查询等功能模块。以下基于Vue Router的实现方案: 路由模块设计 在src/router/index.js中定义核…

vue路由实现思路

vue路由实现思路

Vue 路由实现思路 Vue 路由的核心是通过 Vue Router 库实现的单页面应用(SPA)路由管理。以下是关键实现思路和步骤: 安装 Vue Router 通过 npm 或 yarn 安装…

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

vue实现动态路由按钮

vue实现动态路由按钮

Vue 实现动态路由按钮的方法 动态路由按钮的实现通常涉及权限控制,根据用户角色或权限动态显示或隐藏路由按钮。以下是几种常见方法: 基于路由元信息(meta)和v-if控制 在路由配置中添加权限标识…

vue路由实现

vue路由实现

Vue 路由实现方法 安装 Vue Router 在项目中安装 Vue Router 依赖包: npm install vue-router 配置路由 在 src 目录下创建 router/inde…

vue路由实现滑动

vue路由实现滑动

路由切换滑动动画实现 在Vue中实现路由切换时的滑动动画,可以通过Vue的过渡系统结合CSS动画或第三方库完成。以下是几种常见方法: 使用Vue过渡 + CSS动画 包裹<router-vie…