react-router-dom v6中优雅处理404重定向问题

在基于React的单页面应用(SPA)中,使用 react-router-dom 库来管理路由是一项关键任务。当用户访问一个不存在的页面时,我们通常希望能够以优雅的方式处理404情况,从而提升用户体验。本文将探讨如何在React应用中使用react-router-dom的v6版本来优雅地处理404重定向问题,并为你的项目增添一份专业的风采。

React

一、安装与基本设置

首先,确保你的项目已经安装了 react-router-domv6 版本:

pnpm add react-router-dom@6

接着,在主应用组件中进行基本的路由配置,包括404的重定向:

import React from 'react';
import { BrowserRouter as Router, Route, Routes, Outlet, Navigate } from 'react-router-dom';

import Home from './Home';
import About from './About';
import NotFound from './NotFound';

function App() {
  return (
    <Router>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
        <Route path="*" element={<NotFound />} /> {/* 所有未匹配路由都重定向到404页面 */}
      </Routes>
    </Router>
  );
}

export default App;

二、创建404页面

为了提供更好的用户体验,我们需要创建一个专门的404页面组件,用于显示当用户访问不存在的页面时的内容:

import React from 'react';

function NotFound() {
  return (
    <div>
      <h2>404 - Page Not Found</h2>
      <p>The page you are looking for does not exist.</p>
    </div>
  );
}

export default NotFound;

三、两种404重定向方案

1. 重定向到404页面

通过在主应用组件中使用 <Route path="*" element={<NotFound />} /> 配置,我们可以将所有未知路径都重定向到自定义的404页面,为用户提供明确的错误提示。

2. 重定向到首页

如果你更倾向于将用户引导回首页,可以使用导航元素 <Navigate to="/" replace /> 将所有未匹配路由重定向到首页。代码演示:

function App() {
  return (
    <Router>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
        <Route path="*" element={<Navigate to="/" replace />} /> {/* 所有未匹配路由都重定向到首页 */}
      </Routes>
    </Router>
  );
}

四、实践经验与提升

  1. 导航链接: 无论是重定向到404页面还是首页,都可以在404页面上添加导航链接,使用户能够轻松返回其他页面。
  2. 定制404页面: 根据你的应用风格,定制404页面的样式和内容,以保持一致的用户体验。
  3. 动画效果: 为404页面添加过渡动画效果,能够使页面切换更加平滑,提升用户感知。
  4. React组件库: 如果你使用了UI组件库,可以在404页面中继续使用这些组件,保持一致的设计风格。

五、总结

通过合理配置 react-router-domv6 版本,我们能够在React应用中优雅地处理404重定向问题。无论是重定向到专门的404页面还是引导用户返回首页,都能够提升用户体验,为应用增添专业的形象。通过定制内容、样式、动画和组件,我们可以为用户呈现出更加友好和专业的404页面,从而提升整体用户体验。


欢迎访问:天问博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/244854.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法Hot100系列】无重复字符的最长子串

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

python下使用Open3D

1.切记不要安装最新的python否则无法使用open3D &#xff0c;官网显示只支持python3.8-3.11 这是我安装的python版本 2.由于访问github很慢&#xff0c;所以我手动下载ply文件 https://github.com/isl-org/open3d_downloads/releases/download/20220201-data/fragment.ply 3…

Python占位符%详解:格式化字符串的利器

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python中&#xff0c;%占位符是一种强大的工具&#xff0c;用于格式化字符串。本文将深入解析Python中占位符的使用方法&#xff0c;包括字符串格式化、数字格式化、日期格式化等多个方面。通过丰富的示例代码…

设计模式(2)--对象创建(2)--生成器

1. 意图 将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 2. 四种角色 指挥(Director)、抽象生成器(Builder)、具体生成器(Concrete Builder)、产品(Product) 3. 优点 3.1 可以改变一个产品的内部表示(通过定义新的生成器)。 3.2 将构…

软件项目总结报告

1. 项目进度 1.1. 进度表 1.2. 总结偏差 2. 项目成本 2.1. 项目规模 2.2. 项目工作量 3. 项目质量 3.1. 评审 4. 计划偏差 5. 测试总结 5.1. 缺陷分析 5.2. 测试Bug分布统计 5.3. Bug分布图 5.4. 总结 6. 最佳实践 7. 经验教训 7.1. 项目过程管理 7.2. 合同完成度管理 7.3. 项目…

Apifox接口测试工具详细解析

最近发现一款接口测试工具--apifox&#xff0c;我我们很难将它描述为一款接口管理工具 或 接口自测试工具。 官方给了一个简单的公式&#xff0c;更能说明apifox可以做什么。 Apifox Postman Swagger Mock JMeter Apifox的特点&#xff1a; 接口文档定义&#xff1a; Api…

Kibana搜索数据利器:KQL与Lucene

文章目录 一、搜索数据二、KQL查询1、字段搜索2、逻辑运算符3、通配符4、存在性检查5、括号 三、Lucene查询1、字段搜索2、逻辑运算符3、通配符4、范围搜索5、存在性检查6、括号 四、总结 一、搜索数据 默认情况下&#xff0c;您可以使用 Kibana 的标准查询语言&#xff0c;该…

如何将从GitHub上弄下来的Three.js本地官网设为中文

我们辛辛苦苦从git上面弄下来的 Three.js 本地文档 启动之后 会发现 好家伙 这鬼东西是个英文的 我们可以找到根目录下的 docs下的 index.html 然后全局搜索 language 变量声明的地方 let language你能看到是英文 那说明 它用的肯定是en 我们改成zh 我们整个文档就变成中文…

PHP在线SEO文章伪原创同义词交换工具源码

源码介绍 PHP在线SEO文章伪原创同义词交换工具源码 支持关键词提交 独立后台 1.支持文章在线伪原创功能 2.支持关键字交换预览 3.有独立背景 4.支持访客提交关键词(后台可以审核用户提交的关键词) 5.完全开源&#xff0c;支持二次开发 使用php语言独立开发utf-8编码 适合工具…

二叉搜索树的简单理解

1. 二叉搜索树 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值 它…

接口测试总结及其用例设计方法整理

接口测试的总结文档 第一部分&#xff1a;主要从问题出发&#xff0c;引入接口测试的相关内容并与前端测试进行简单对比&#xff0c;总结两者之前的区别与联系。但该部分只交代了怎么做和如何做&#xff1f;并没有解释为什么要做&#xff1f; 第二部分&#xff1a;主要介绍为什…

A good teacher is patient and consistent(CVPR 2022)论文解读

paper&#xff1a;Knowledge distillation: A good teacher is patient and consistent official implementation&#xff1a;https://github.com/google-research/big_vision 本文的创新点 本文没有提出新的方法&#xff0c;而是提出了一些影响蒸馏性能的关键因素&#xff…

论文润色突显研究亮点 papergpt

大家好&#xff0c;今天来聊聊论文润色突显研究亮点&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 标题&#xff1a;论文润色突显研究亮点――提升论文吸引力的关键步骤 一、引言 在学术研究中&#x…

家政服务小程序预约上门,让服务更便捷

随着人们生活节奏的加快&#xff0c;家政服务行业越来越受到人们的欢迎。为了满足市场需求&#xff0c;提高服务质量&#xff0c;家政公司需要开发一款预约上门的家政服务小程序。本文将详细介绍如何制作一个预约上门的家政服务小程序。 一、登录乔拓云网后台 首先&#xff0c…

什么是接口与API接口!

今天有个朋友问我什么接口&#xff1f;你们平时都说在写接口&#xff0c;写的是什么鬼啊&#xff1f;我一开始就想&#xff0c;咦小陈同学怎么突然了解编程接口了&#xff0c;不过听到他后一个提问我知道原来他想的是API接口&#xff0c;不过被我主观意识习惯想成了编程定义上的…

DHCP--自动获取IP地址

目录 一、了解DHCP服务 1、概念 2、使用DHCP的好处 3、DHCP的分配方式 二、DHCP的租约过程 1、客户机请求IP地址 2、服务器响应 3、客户机选择IP地址 4、服务器确定租约 5、服务器租约期限到了之后续期问题 6、总结 三、部署DHCP实验 1、项目要求 2、规划设计 …

Linux服务器配置免密SSH

在当今互联网时代&#xff0c;远程工作和网络安全已成为信息技术领域的热点话题。无论是管理远程服务器、维护网络设备还是简单地从家中连接到办公室&#xff0c;安全始终是首要考虑的因素。这就是为什么 SSH&#xff08;Secure Shell&#xff09;成为了网络专业人士的首选工具…

【送书活动五期】Go语言开发规范指南

今天和一个小伙伴偶尔聊了两句&#xff0c;聊到现在工作的开发语言&#xff0c;大学时接触的第一个语言应该是html&#xff0c;系统且简单的学习了前端语言&#xff0c;之后伴随着学校的课程&#xff0c;C、C#、Java都有涉及&#xff0c;然后就一直已Java为主了&#xff0c;也是…

动手学深度学习-注意力机制

10.1注意力提示 自主性注意力机制 有意识的注意力机制。非自主性注意力机制 无意识的注意力机制。 小结: 人类的注意力是有限的&#xff0c;有价值和稀缺的资源。受试者使用非自主性和自主性提示有选择的引导注意力&#xff0c;前者基于突出性&#xff0c;后者则依赖于意识。…

浏览器js中添加日志断点

一、需求 本地调试时&#xff0c;可以直接代码里使用console.log直接调试&#xff1b; 代码已更新到服务器&#xff0c;不想要提交代码&#xff0c;如何通过添加console.log调试呢 二、实现 使用浏览器添加日志断点的方式&#xff0c;当然vue这种打包的不可行哦 设置完成后…