如何在 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