繁体   English   中英

反应路由器-BrowserHistory.PushVS。 ContextTypes

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM