持久化redux状态与动态网址

时间:2020-09-07 11:38:55

标签: reactjs web url redux

在我正在处理的应用程序中,我具有用户在下拉列表中选择的状态。我希望用户刷新页面后这种状态仍然保持不变

两个选项:

  1. 通过添加“ /:state”在网址中存储状态
  • 我们必须再次命中api端点才能基于状态获取数据。所以总是新鲜的
  • 该网址可以存储在历史记录中并复制/添加书签
  • 每次用户更改状态时,URL都会更改,从而导致页面重新加载
  1. 将状态存储在redux中并保持不变
  • 必须安装像redux-persist这样的软件包,它需要进行一些配置
  • 数据在页面重新加载后仍然存在,因此我们不需要另一个api调用
  • 数据可能已过时,需要重新提取

哪个选项更好?哪种情况破坏了这两种选择?

1 个答案:

答案 0 :(得分:0)

每次用户更改状态时,URL都会更改,从而导致页面重新加载 如果您使用react-router之类的东西,则每次更改网址时应用程序都不会重新加载。

决定是否存储某些设置取决于情况。我通常更喜欢在url中仅存储与导航相关的内容:更改视图/页面,打开的模式,搜索/过滤器。通常,当您希望该URL与其他用户共享时,您希望将其存储在URL中。因此,您要在URL中添加一些下拉值,请考虑:是否要浏览器导航更改此值?此下拉菜单会更改某些视图吗?

此外,有时您必须将此选择存储在后端。通常当它是某个实体的属性或设置时。您必须考虑是否要在不同设备上的多个会话之间共享此下拉菜单的值。