react-router v4 跟 react 一样拆成了两部分,核心的 react-router 和依运行环境而定的 react-router-dom 或 react-router-native(跟 react-dom 和 react-native 一样)。本文要说的是浏览器环境,也就是 react-router + react-router-dom。
组件外导航与 react-router-redux
之前我们项目中使用了 react-router-redux 你有很多理由使用它,但对于我们来说唯一的理由或者用处就是用于在页面组件之外导航,react-router-redux 让你可以在任何地方通过 dispatch 处理页面跳转,如:store.dispatch(push(‘/‘))。因为这个我们就必须使用 react-router-redux 吗?当然不需要,有更简单的办法实现这个需求。所以这次升级我移除了react-router-redux, 写作此文时支持 react-router v4 的 react-router-redux 还处于 v5.0.0-alpha.7 也是原因之一。
还记得之前安装的 history 吗?history 是 react-router 的另一个主要依赖,之所以要显式安装,是因为我们要使用它来实现页面组件外导航。