SPA-何时使用基于位置的状态或内部状态?

时间:2018-11-10 00:44:05

标签: reactjs single-page-application

希望这不是太自以为是,但我想知道是否存在有关基于位置的SPA和基于内部的SPA的最佳实践。

Internal based SPAs -  track state internally
Location-based SPAs - URL location / Sessions , etc

如果用户粘贴网址,则在我网站的一部分中,将显示搜索结果。

但是,如果我应该对admin部分这样的区域执行此操作。

例如,我允许用户添加库存

管理员->添加新库存->选择中心->选择子类别->添加库存。

这几乎就是流程,但是如果我要根据“添加库存页面”对其进行定位,则必须设置

  • 公司
  • 中心
  • 子类别

这将需要ajax请求来获取所有数据,并且基本上每个页面我都必须设置数据。好像很多工作一样,如果每个页面都来自url,则必须对其进行完全设置。

我已经在使用诸如react-router之类的东西来进行路由了,但最终,我要确保始终将所有设置为页面设置的内容基本上可以独立运行。

所以在某些情况下,最好以某种方式将用户重定向回所有内容的根目录?

1 个答案:

答案 0 :(得分:0)

我建议使用React Context解决您的问题。

获得授权后,您可以将Provider值设置为用户或其权限,然后在每个ComponentDidMountrender()或您选择的任何生命周期挂钩上,都可以检查用户权限,然后允许基于此功能。

上下文值在整个路由过程中都保持不变,因此您不必担心始终更新它(尽管如果您的用户具有定时会话,则可能会需要更新)。

因此完全有可能同时使用基于内部和基于位置的状态管理,并且可能更有效。