Why
经常访问网站的你们对 404 应该不陌生。404,通俗点讲就是网页找不到了。比如一个博客网站,删除了某篇文章对应的页面,而用户仍使用原URL进入,则会进入404页面。如果我们不做任何处理,可能会显示如下:
404 Not Found nginx/x.x.x
这样的用户体验会很差,如果我们的前端是由 React 构建的,如何创建并定义404页面呢?
What
我们可以使用 React Router 来定义路来,且可用其创建404页面。
react-router: 定义React路由的库
本文使用 react-router 4+ 版本
How
创建 404 页面和其他页面几乎没什么不同,看下 Demo 就明白了:
// App.js
...
const NoMatchPage = () => {
return (
<h3>404 - Not found</h3>
);
};
const App = () => {
return (
<section className="App">
<Router>
...
<Link to="/users">Users</Link>
<Link to="/search?q=react">Search</Link>
...
<Route path="/about" component={AboutPage} />
<Route path="/search" component={SearchPage} />
<Route component={NoMatchPage} />
</Router>
</section>
);
};
...
当路由指定的所有路径没有匹配时,就会加载这个NoMatchPage组件,也就是404页面(没错,就那么简单)。至于组件要怎么搞,完全自由发挥了。
看到这里,严重质疑这篇文章很水,好吧… 我承认。其实,404 页面更多需要产品的定制,有兴趣的可阅读:404页面三问:你真的懂「404页面」?