Published on

react-route从v3迁移到v4(折腾+踩坑)

Authors

从react-router v3到react-router v4确实不能算是升级,而是称得到是迁移了。API的变化发生了翻天覆地的变化了。

一. 包的改变

所有引入的react-route都要换成react-route-dom

二. 没有了browserHistory

需要引入BrowserRouter来实现

三. location中没有了query

官方对此讨论也很激烈,https://github.com/ReactTraining/react-router/issues/4410

官方给出的解决方案就是使用第三方库query-string来解决

四. path不再支持通配符

path="goods/(:id)"需要写成path="goods/:id?"

五. 不能直接从props.params中取值了

this.props.params.id需要改成this.props.match.params.id

六. 不再有onEnter等api

https://reacttraining.com/react-router/web/example/auth-workflow

https://github.com/lincenying/mmf-blog-react-v2

扩展阅读

【React Router 从v3升级到v4踩坑之旅】(http://www.jianshu.com/p/e2277aaa53f1) 【react-router v4 使用 history 控制路由跳转】(https://segmentfault.com/a/1190000011137828)