在 React.js 中实现嵌套路由 - React Router DOM V6 指南

React JS 中的嵌套路由提供了一种分层导航功能,这是通过 React Router Dom 中的 Outlet 组件来实现的。React 中的路由不仅为页面提供路由,还能在该页面内渲染多个组件。嵌套路由通过在父路由组件内部为子组件定义路由来实现这一点。

前置知识:

React 中的嵌套路由

React 中的嵌套路由用于创建多级导航。它允许我们构建复杂的布局,并在不同层级渲染组件。这主要得益于 react router dom 提供的 Outlet 组件。

语法:

// 定义嵌套路由
<Route path="parent" element ={}>
    <Route path="child" element = {}/>


// 定义 Outlet 位置以渲染子组件
const Parent = ()=>{
    return()
}

嵌套路由的实现思路

为了在 React 中实现嵌套路由,我们将借助 INLINECODEe662a368 和 INLINECODE2dc8138a 属性在父路由内部定义子路由。在父组件中,在你希望渲染嵌套组件的位置使用 Outlet 组件。

实现嵌套路由的步骤

步骤 1: 在终端中输入以下命令以创建一个 React 应用程序。

npx create-react-app nesting-demo

步骤 2: 现在,通过运行以下命令进入项目文件夹,即 nesting-demo

cd nesting-demo

项目结构:

!Screenshot-from-2023-10-11-11-44-50

步骤 3: 让我们安装本项目所需的 React Router DOM npm 包。

npm i react-router-dom

安装完成后 package.json 中的依赖列表

{
    "name": "nesting-demo",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
        "@testing-library/jest-dom": "^5.17.0",
        "@testing-library/react": "^13.4.0",
        "@testing-library/user-event": "^13.5.0",
        "react": "^18.2.0",
        "react-dom": "^18.2.0",
****        "react-router-dom": "^6.16.0",****
        "react-scripts": "5.0.1",
        "web-vitals": "^2.1.4"
    }
}

示例: 定义两个页面 INLINECODE118ce47d(主页)和 INLINECODEc5206503(课程),并为课程定义名为 INLINECODE363c4ec1(列表)和 INLINECODEd39a8a23(搜索)的子组件。为主页和课程页面使用 Routes(路由),并在课程路由内部定义列表和搜索路由。按照下图所示在课程文件中链接这些组件。

CSS


CODEBLOCK_9e5ef026

JavaScript


CODEBLOCK_6cf2a77f

JavaScript


/

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/20024.html
点赞
0.00 平均评分 (0% 分数) - 0