”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 使用 React Router 进行导航 React Js 第一部分 React 应用程序中的路由指南

使用 React Router 进行导航 React Js 第一部分 React 应用程序中的路由指南

发布于2024-11-06
浏览:491

Navigating with React Router React Js Part A Guide to Routing in React Applications

欢迎回到我们的 React 系列!在之前的文章中,我们介绍了组件、状态、道具和事件处理等基本概念。现在,是时候使用 React Router 探索 React 应用程序中的路由了。路由允许您在应用程序内的不同视图或组件之间导航,从而创建无缝的用户体验?.

什么是 React 路由器?

React Router 是一个功能强大的库,可以在 React 应用程序中实现路由。它允许您在应用程序中定义多个路由并根据 URL 路径呈现特定组件。此功能对于构建导航不需要重新加载整页的单页应用程序 (SPA) 至关重要。

安装 React Router
首先,您需要安装 React Router。您可以使用 npm 来执行此操作:

npm install react-router-dom

设置基本路由

让我们设置一个具有多个路由的简单应用程序。我们将创建一个带有主页、关于页面和联系页面的应用程序。

1.创建基本组件
首先,创建三个组件:主页、关于和联系方式。

// Home.js
import React from 'react';

const Home = () => {
    return 

Home Page

; }; export default Home; // About.js import React from 'react'; const About = () => { return

About Page

; }; export default About; // Contact.js import React from 'react'; const Contact = () => { return

Contact Page

; }; export default Contact;

2.设置路由器
现在,让我们在主应用程序文件(通常是 App.js)中设置路由器。

import React from 'react';
import { BrowserRouter as Router, Route, Switch, Link } from 'react-router-dom';
import Home from './Home';
import About from './About';
import Contact from './Contact';

const App = () => {
    return (
        
    );
};

export default App;

解释:

  • Router:BrowserRouter组件包装了整个应用程序,实现路由。
  • Link:Link 组件用于创建导航链接,无需重新加载页面即可更改 URL。
  • Route:Route组件定义路径以及路径匹配时要渲染的组件。
  • Switch:Switch组件确保一次只渲染一条路线。

在页面之间导航
设置完成后,您现在可以通过单击导航菜单中的链接在主页、关于和联系页面之间导航。 React Router 将处理 URL 更改并渲染适当的组件,而无需刷新页面。

路由参数
您还可以使用参数定义路由,从而允许传递动态数据。例如,我们创建一个 User 组件,根据 URL 中的用户 ID 显示用户信息。

1.创建用户组件
用户.js:

import React from 'react';
import { useParams } from 'react-router-dom';

const User = () => {
    const { userId } = useParams();
    return 

User ID: {userId}

; }; export default User;

2.更新路由器
在 App.js 中添加 User 组件的路由:


嵌套路由

React Router 还支持嵌套路由,它允许您在父组件中渲染子路由。这对于构建复杂的布局很有用。

嵌套路由示例:

  1. 创建具有嵌套路由的 Dashboard 组件:
// Dashboard.js
import React from 'react';
import { Route, Link, Switch } from 'react-router-dom';
import Settings from './Settings';
import Profile from './Profile';

const Dashboard = () => {
    return (
        

Dashboard

); }; export default Dashboard;
  1. 更新您的 App.js 以包含仪表板路线:

现在,导航到 /dashboard/profile 或 /dashboard/settings 将在仪表板中呈现相应的组件。


在这篇文章中,我们探讨了如何使用 React Router 在 React 应用程序中实现路由。我们介绍了设置基本路由、在页面之间导航、使用路由参数以及创建嵌套路由。

利用这些概念,您可以为 React 应用程序创建结构化导航系统,从而增强用户体验并实现动态内容渲染。

在下一篇文章中,我们将深入研究 React Hooks 的使用,重点关注 useEffect 以及它如何管理功能组件中的副作用。敬请关注!

版本声明 本文转载于:https://dev.to/kyydev/navigating-with-react-router-react-js-part-4-a-guide-to-routing-in-react-applications-1ikb?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 弃用 `ereg_replace` 后,如何将多个空格替换为单个空格?
    弃用 `ereg_replace` 后,如何将多个空格替换为单个空格?
    用单个空格替换多个空格:弃用 ereg_replace虽然使用 ereg_replace 用单个空格替换多个空格可能看起来很简单,但它已被弃用。因此,您在尝试使用它时可能会遇到错误。本文提出了一种替代解决方案。迁移到 preg_replace()要替换 ereg_replace,请切换到 preg_...
    编程 发布于2024-11-06
  • 如何开始自由职业?
    如何开始自由职业?
    您是否正在努力通过 Upwork 赚钱?别担心!我曾经去过那里,我来这里是为了分享我将这些挣扎转化为成功的旅程。凭借奉献精神和正确的方法,您可以开始在 Upwork 上赚钱,并打开通往一系列机会的大门。让我们深入探讨最大化您的收入潜力的关键步骤。 掌握技巧游戏 在 Upwork 上取...
    编程 发布于2024-11-06
  • 如何将 8 个字符作为打包单精度浮点数加载到 __m256 变量中?
    如何将 8 个字符作为打包单精度浮点数加载到 __m256 变量中?
    将 8 个字符从内存加载到 __m256 变量中作为打包单精度浮点数为了优化高斯模糊算法,您寻求用 __m256 内在变量替换浮点缓冲区的使用。本问题旨在确定此任务的最佳指令。AVX2 架构说明:利用 PMOVZX 将字符零扩展为 32 位256b 寄存器中的整数。使用 VCVTDQ2PS 就地转换...
    编程 发布于2024-11-06
  • 如何在Python中查找字符串中子字符串的第n次出现?
    如何在Python中查找字符串中子字符串的第n次出现?
    查找字符串中某个子字符串第 n 次出现识别某个子字符串第 n 次出现对应的索引为各种编程场景中经常出现的任务。在Python中,没有专门为此目的而设计的内置函数。但是,可以采用多种方法来实现此结果。一种简单的方法是使用循环来迭代字符串并计算子字符串的出现次数。起始索引被初始化为第一次出现的结果,循环...
    编程 发布于2024-11-06
  • 编程语言解释
    编程语言解释
    ? 注意:缩略图是使用生成的 ComfyUI 帮助下的 Flux Schnell 模型; 本文是在 NI - 自然智能 的帮助下撰写的 ? 没有时间阅读? - 观看我们创建的视频: 集会 ? 最初所有程序都是用二进制编写的 - 所谓的汇编 编程语言。你从字面上指示CPU在内做什么 ...
    编程 发布于2024-11-06
  • Go Context — TODO() 与 Background() 不再令人困惑!
    Go Context — TODO() 与 Background() 不再令人困惑!
    在 Go 中,上下文包有助于管理请求范围的值、取消信号和截止日期。 启动上下文的两种常见方法是 context.TODO() 和 context.Background()。 尽管它们的行为相似,但它们的目的不同。 上下文.背景() 当您不需要任何特殊处理(例如取消或截止日期)...
    编程 发布于2024-11-06
  • 如何检测 CMake 中的 C++11 编译器支持?
    如何检测 CMake 中的 C++11 编译器支持?
    CMake 中 C 11 编译器支持的检测概述在本指南中,我们探索自动检测编译器是否支持 C 11 的方法CMake,提供对最新和以前 CMake 版本的全面分析。CMake 3.1.0 及更高版本CMake 3.1.0 版本引入了一个强大的功能:检测编译器。这是通过 cmake_minimum_r...
    编程 发布于2024-11-06
  • 基于属性的测试:深入探讨现代测试方法
    基于属性的测试:深入探讨现代测试方法
    基于属性的测试是一种强大的测试方法,它侧重于软件的属性或特征,而不是特定的输入输出情况。与手动定义特定测试用例的传统测试不同,基于属性的测试会自动生成各种输入来验证某些属性是否始终成立。这种方法可以更广泛地探索潜在场景,使其成为发现隐藏错误并确保稳健的软件行为的有效方法。 测试方法的演变 从传统的...
    编程 发布于2024-11-06
  • 为开发人员和安全团队提供主动的 AppSec 持续漏洞管理
    为开发人员和安全团队提供主动的 AppSec 持续漏洞管理
    现代软件开发环境中哪些日益增长的网络安全风险让 CISO 忙碌? 开发人员和安全团队面临着越来越多的威胁,从复杂的开源和供应商控制的供应链攻击到 AI 生成的代码引入的漏洞,例如提示注入和 GitHub Copilot 的代码安全性差。现代应用程序通常严重依赖开源组件(例如在 npm、PyPI 或 ...
    编程 发布于2024-11-06
  • 如何使用 React 对 MeteorJS 中的 Bootstrap Spacing 实用程序类进行故障排除?
    如何使用 React 对 MeteorJS 中的 Bootstrap Spacing 实用程序类进行故障排除?
    在 Bootstrap 中使用间距实用程序类在 Bootstrap 中,间距实用程序类允许您轻松控制元素周围的间距。但是,如果您在使用它们时遇到问题,这里有一个指南可以帮助您解决。更新的间距语法(Bootstrap 4 和 5)Bootstrap 4 引入了间距实用程序类的简化语法:边距:m{sid...
    编程 发布于2024-11-06
  • 如何在Python中设置子进程的工作目录?
    如何在Python中设置子进程的工作目录?
    如何在Python中设置子进程的工作目录在Python中,subprocess.Popen()函数允许您在Py​​thon中执行命令子进程。一个常见的要求是指定子进程的工作目录。问题:如何使用 subprocess.Popen() 设置子进程的工作目录? 答案:要指定工作目录,请使用 subproc...
    编程 发布于2024-11-06
  • Pandas 什么时候创建视图而不是副本?
    Pandas 什么时候创建视图而不是副本?
    Pandas 视图与副本生成规则Pandas 在决定 DataFrame 上的切片操作是否产生视图或结果时采用特定规则复制。通过了解这些规则,您可以优化数据操作并避免意外行为。从始终生成副本的操作开始:所有操作,除了那些专门设计用于修改的操作就地 DataFrame,创建副本。只有某些操作支持 in...
    编程 发布于2024-11-06
  • 使用代理服务器解锁地理限制网站
    使用代理服务器解锁地理限制网站
    利用代理服务器绕过区域封锁是一种常用且有效的方法。代理服务器作为中介,可以隐藏用户的真实IP地址,使用户的请求看起来像是来自代理服务器的地理位置,从而绕过区域封锁。 使用代理服务器绕过区域封锁的关键步骤:‌‌ 选择合适的代理服务器‌:根据目标区域的网络环境和遮挡情况,选择覆盖该区域的...
    编程 发布于2024-11-06
  • 如何为三角形中的线性渐变锯齿线创建平滑边缘?
    如何为三角形中的线性渐变锯齿线创建平滑边缘?
    为线性渐变锯齿线创建平滑边缘为了设计具有由两个三角形形成的尖底的响应式图像,开发人员在三角形线上遇到了意外的锯齿状边缘。为了解决这个问题,我们探索了产生更平滑渐变过渡的策略。虽然硬停止线性渐变图像中的颜色通常会导致锯齿状边缘,但调整停止点和起始点可以缓解此问题。不要突然从一种颜色变为另一种颜色,而是...
    编程 发布于2024-11-06
  • Java 中“static”的魔力:一为所有,一切为一!
    Java 中“static”的魔力:一为所有,一切为一!
    老实说,当我们第一次遇到 static 关键字时,我们都会想:“这是什么魔法?” ?但别担心,我会用一种简单、深入、甚至有点有趣的方式来分解它! 想象一下你正在参加一个聚会?你和你所有的朋友都戴着帽子。但每个人都必须分享一顶帽子。这基本上就是 Java 中 static 关键字的作用!您不必为每个朋...
    编程 发布于2024-11-06

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3