使用React刷新浏览器历史logging路由器从我的API返callback用

据我所知,要正确使用React Router中的browserHistory对象,我们需要使用通配符*路由,以便每次刷新时用户都返回单页应用程序。 这成为一个问题是当我的客户端URL是一样的我的APIurl。

例如,假设我有一个名为example.com的网站,并且该网站上的其中一个网页是example.com/profile 。 如果我刷新,预期的行为是它将简单地重新加载网站example.com并正确地路由到/profile ,因为通配符路由应该已经返回客户端单页应用程序。 如果这不起作用,如果我有一个API路线/profile ,即example.com/profile 。 现在,当用户刷新页面,而不是被返回到configuration文件页面,而是从我的API返回一个JSON响应。

根据通配符路由的声明顺序,我可以在刷新时返回API响应,也可以在刷新时返回单页应用程序,但是当API url与客户端浏览器url相同时,则不能同时返回。

围绕这个问题有什么build议吗? 我目前的解决scheme是将我的所有API路由迁移到拥有/api/前缀给他们。

您需要确保您的客户端路由不会与您的API路由冲突,并且使用/api为API路由添加前缀是处理此问题的一种非常标准的方法。

除了确保它们不会发生碰撞之外,还没有真正的“解决”问题的方法 – 可能会有各种解决方法,但是如果路线是明确的,那么每个参与者都会更加清楚。