在React Router中,如何处理路由的404错误页面?

简介: 在React Router中,如何处理路由的404错误页面?

在 React Router 中,不同版本处理 404 错误页面的方式有所不同,下面分别介绍 React Router v5 和 v6 处理 404 错误页面的方法。

React Router v5

1. 安装 React Router v5

npm install react-router-dom@5

2. 处理 404 错误页面的实现

在 React Router v5 中,通常使用 Switch 组件结合一个没有 path 属性的 Route 来实现 404 错误页面。Switch 会渲染第一个匹配的 Route,如果没有匹配的 Route,则会渲染没有 path 属性的 Route

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

// 首页组件
const Home = () => <h1>Home Page</h1>;
// 关于页面组件
const About = () => <h1>About Page</h1>;
// 404 错误页面组件
const NotFound = () => <h1>404 - Page Not Found</h1>;

const App = () => {
    return (
        <Router>
            <Switch>
                <Route exact path="/" component={Home} />
                <Route path="/about" component={About} />
                {/* 没有 path 属性的 Route 作为 404 页面 */}
                <Route component={NotFound} />
            </Switch>
        </Router>
    );
};

export default App;

在上述代码中,当用户访问的路径不匹配 //about 时,就会渲染 NotFound 组件,显示 404 错误信息。

React Router v6

1. 安装 React Router v6

npm install react-router-dom

2. 处理 404 错误页面的实现

在 React Router v6 中,Switch 组件被 Routes 组件取代,并且可以使用 path="*" 来匹配所有未定义的路径,从而实现 404 错误页面。

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

// 首页组件
const Home = () => <h1>Home Page</h1>;
// 关于页面组件
const About = () => <h1>About Page</h1>;
// 404 错误页面组件
const NotFound = () => <h1>404 - Page Not Found</h1>;

const App = () => {
    return (
        <Router>
            <Routes>
                <Route path="/" element={<Home />} />
                <Route path="/about" element={<About />} />
                {/* 使用 path="*" 匹配所有未定义的路径 */}
                <Route path="*" element={<NotFound />} />
            </Routes>
        </Router>
    );
};

export default App;

在这个示例中,当用户访问的路径不匹配 //about 时,path="*"Route 会被匹配,从而渲染 NotFound 组件,显示 404 错误信息。

通过以上方法,你可以在 React Router 中有效地处理 404 错误页面,提升用户体验。

相关文章
|
1月前
|
前端开发 JavaScript
除了使用Route组件,React Router还有其他方式处理404错误页面吗
除了使用Route组件,React Router还有其他方式处理404错误页面吗
91 58
|
1月前
|
前端开发
如何在React Router中定义404错误页面组件?
如何在React Router中定义404错误页面组件?
86 57
|
1月前
|
前端开发
如何在React Router中进行嵌套路由配置?
如何在React Router中进行嵌套路由配置?
115 57
|
1月前
|
前端开发
如何在React Router中进行路由重定向?
如何在React Router中进行路由重定向?
127 57
|
12天前
|
移动开发 前端开发 JavaScript
Vue与React两大前端框架的主要差异点
以上就是Vue和React的主要差异点,希望对你有所帮助。在选择使用哪一个框架时,需要根据项目的具体需求和团队的技术栈来决定。
163 82
|
5月前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
147 9
|
6月前
|
前端开发
深入解析React Hooks:构建高效且可维护的前端应用
本文将带你走进React Hooks的世界,探索这一革新特性如何改变我们构建React组件的方式。通过分析Hooks的核心概念、使用方法和最佳实践,文章旨在帮助你充分利用Hooks来提高开发效率,编写更简洁、更可维护的前端代码。我们将通过实际代码示例,深入了解useState、useEffect等常用Hooks的内部工作原理,并探讨如何自定义Hooks以复用逻辑。
|
6月前
|
前端开发 JavaScript API
探索React Hooks:前端开发的革命性工具
【10月更文挑战第5天】探索React Hooks:前端开发的革命性工具
|
5月前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
362 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
5月前
|
前端开发 JavaScript 开发者
使用React和Redux构建高效的前端应用
使用React和Redux构建高效的前端应用
93 2