[英]React Router - BrowserHistory.Push VS. ContextTypes
我正在完成一个高级的react / redux教程,并且在课程的一部分中遇到了讲师使用browserHistory.push链接到路线的方法,这与之前用于创建称为contextTypes的静态类变量并对其进行设置的方法相反等于类似React.PropTypes.blah之类的东西。
那和使用browserHistory.push有什么区别? 与设置上下文类型相反,通过程序性重新路由,browserHistory.push似乎容易得多。
谢谢!
不知道您使用了哪些教程,所以这是一个黑暗的镜头。
我想您在第一个教程中使用的是https://github.com/reactjs/react-router-redux之类的东西,它将路由器状态与redux状态同步,并在上下文中包含路由器对象。 然后,您可以执行以下操作:
this.context.router.push(location)
调度位置更改,这会将位置更改保存到您的redux状态,然后加载该新路由。
在核心react-router-redux(以及许多其他路由库)中,使用https://github.com/ReactTraining/history来管理导航到的路由的历史记录。 这样一来,您就可以在现代浏览器中使用HTML5历史记录API,回退到hashHistory(index.html /#page-one)或内存历史记录,即呈现服务器端。
历史记录程序包带有其自己的API。 在您的教程中, browserHistory.push()
可能会直接调用历史包的API( 请参见此处 )。
这将导致应用加载新路线,但可能会绕过与您的Redux存储的同步。
您的第二个教程可能不使用react-router-redux或进行其他设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.