在react 项目实例自己搭建过程,我使用的是最新的版本的react-router 4.2.0
RR4 本次采用单代码仓库模型架构(monorepo),这意味者这个仓库里面有若干相互独立的包,分别是:
react-router
React Router 核心react-router-dom
用于 DOM 绑定的 React Routerreact-router-native
用于 React Native 的 React Routerreact-router-redux
React Router 和 Redux 的集成react-router-config
静态路由配置的小助手
每个包都需要独立去下载,并使用,react-router和react-router-dom区别
react-router-dom在react-router之上做了一层封装,提供了HashRouter、BrowserRouter等在web端常用的路由
一开始使用的是react-router
import { Router, Route, hashHistory, IndexRoute,IndexRedirect } from 'react-router';
发现了一系列的报错
改用react-router-dom,错误消失
import { BrowserRouter as Router ,HashRouter ,Route, Redirect, Link, Switch ,withRouter ,matchPath} from 'react-router-dom';
这种写法错误
router里面语法只能嵌套一个route,不然会报错,错误如下