如何在 react-router 中以编程方式进行服务器端路由?

Posted

技术标签:

【中文标题】如何在 react-router 中以编程方式进行服务器端路由?【英文标题】:how to do server side routing programmatically in react-router? 【发布时间】:2020-05-19 11:42:23 【问题描述】:

我在我的 react 项目中使用 react-router-dom

我正在尝试以编程方式使用:history.push("/newparam")

导航到新参数

但问题是像这样导航,没有刷新我的页面。看起来它在做假客户 侧路由。但是当我以编程方式导航时,我想刷新我的浏览器。

那么我怎样才能使用 react-router-dom 做类似 server-side 路由,当网站更改 url 时页面会刷新? p>

【问题讨论】:

React 用于单页应用程序。我想知道如果您可以在不刷新页面的情况下刷新页面,为什么还要刷新页面。 【参考方案1】:

当你使用 react-router 时,完整的路由由客户端的 react 处理,所以服务器只负责加载前端应用程序的索引,这是单页应用程序的正常行为。我们使用 XHR 调用与服务器进行所有通信。使用history.push("/newparam")<Link route='/newparam' /> 总是会从客户端加载页面。

我不完全知道您的用例,但是如果您希望每次导航到新页面时都重新加载页面,请使用 html <a> 标签,这将启动服务器端渲染。 JS 等价于 window.location.href = '/your-redirect-url';

让我知道你的用例到底是什么,以便我可以进一步帮助你

【讨论】:

以上是关于如何在 react-router 中以编程方式进行服务器端路由?的主要内容,如果未能解决你的问题,请参考以下文章

在 React-Router V4 中以编程方式设置路由参数最终会出现“找不到页面”

Uncaught TypeError: (0 , _reactRouter.withRouter) 在 react-router 2.4.0 中以编程方式导航路由时不是一个函数

如何使用 Swift 在 iOS 中以编程方式进行 segue

Sprite 如何在 cocos2dx 中以编程方式进行修剪?

如何在android中以编程方式启用位置访问?

如何在 Pyspark 中以编程方式使用“计数”?