【发布时间】:2016-12-03 17:03:29
【问题描述】:
我正在将 jsp 多页应用程序 (mpa) 转换为 React 单页应用程序 (spa)。在 mpa 中,后退按钮起作用并且表单保持其状态。
在我的新 React 应用程序中,后退按钮有效,但表单不保留其状态。
问题:是否有一个技巧可以让我的表单在“支持”它(在水疗中心)后保持其状态。
这是我想出的两个解决方案:
将整个表单状态编码到 url。然后在每次表单更改时使用更新的 url 更新浏览器历史记录。但是,这似乎是一个巨大的痛苦。
修改我的应用程序的结构,以使相关表单(React 组件)保持挂载(并且只需使用 css 可见性或显示属性来显示和隐藏)。但是,在大型应用程序中,将每个页面都挂载在 DOM 中似乎可能会导致性能问题。
顺便说一句,我正在使用 popstate 和浏览器历史 API 来实现 SPA 行为(即我已经滚动了自己的路由器),如 here 所述。
希望有人可以提出比我的两个解决方案更好的解决方案。谢谢。
【问题讨论】:
标签: reactjs single-page-application