react-router-dom示例讲解(六)——未匹配(404页面)
2018-03-20 00:13
1221 查看
react-router-dom的官方示例中,未匹配的示例也是一个比较简单的示例了。其核心就是Switch组件的匹配规则——仅仅匹配第一个符合条件的Route。
实现的效果图:
相关示例代码:
整体实现思路:
使用Switch组件,匹配第一个符合条件的Route,然后把一个无path的Route组件,写在Switch的最后一项,这样就能在匹配不到合适的组件的时候,总能匹配到最后一个Route对应的组件。
这个示例的github地址:https://github.com/liwudi/react-router-dom6.git
实现的效果图:
相关示例代码:
import React, {Component} from 'react'; import { BrowserRouter as Router, Route, Link, Switch, Redirect } from 'react-router-dom'; class App extends Component { constructor(props) { super(props); } render() { return ( <Router> <div> <ul> <li><Link to="/">Home</Link></li> <li><Link to="/old-match">Old Match, to be redirected</Link></li> <li><Link to="/will-match">Will Match</Link></li> <li><Link to="/will-not-match">Will Not Match</Link></li> <li><Link to="/also/will/not/match">Also Will Not Match</Link></li> </ul> <hr/> <Switch> <Route path="/" exact component={Home}/> <Redirect from="/old-match" to="/will-match"/> <Route path="/will-match" component={WillMatch}/> <Route component={NoMatch}/> </Switch> </div> </Router> ); } } class Home extends Component{ render(){ return ( <h1> Switch组件返回第一个匹配成功的Route路由。但是还有一个Route组件没有path,它能够被任何路径匹配到!!! </h1> ) } } class WillMatch extends Component{ render(){ return ( <h1>Matched</h1> ) } } class NoMatch extends Component{ render(){ return ( <h1>NoMatch for {this.props.location.pathname}</h1> ) } } export default App;
整体实现思路:
使用Switch组件,匹配第一个符合条件的Route,然后把一个无path的Route组件,写在Switch的最后一项,这样就能在匹配不到合适的组件的时候,总能匹配到最后一个Route对应的组件。
这个示例的github地址:https://github.com/liwudi/react-router-dom6.git
相关文章推荐
- react-router-dom示例讲解(9)模糊匹配
- react-router-dom示例讲解(五)——阻止导航
- react-router-dom示例讲解(二)——url路径参数
- react-router-dom示例讲解(三)——认证功能
- react-router-dom示例讲解(8)侧边栏
- react-router-dom示例讲解(四)——自定义链接
- react-router-dom示例讲解(七),路径递归
- react-router-dom示例讲解(一)——基本使用
- react-router-dom讲解
- react-router-dom中的模糊匹配原理
- 使用react-router-dom优雅的实现页面(路由)跳转, 而且保持当前页面状态
- react-router browserHistory刷新页面404问题解决方法
- React Router页面传值的三种方法
- 三种思路实现自定义404页面:Tomcat、SpringMVC精准匹配、重写DispatchServlet
- jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
- react实战--antd、react-router-dom v4 解决菜单和地址同步问题
- reactjs router 4 (react-router-dom)使用嵌套路由遇到的问题
- React Router页面传值的三种方法
- vue-router动态设置页面title的实例讲解
- 三种思路实现自定义404页面:Tomcat、SpringMVC精准匹配、重写DispatchServlet