我们可以假设:我们的SPA应用程序包含profile
页面和followerList
页面。状态树如下所示:
{
profile: { name: xx, sex: xx },
followerList: []
}
我们可以从个人资料第A页打开关注者列表页面,然后从关注者列表页面打开个人资料第B页。在我的应用程序中,页面A和页面B共享相同的缩减器profile
。
问题在于:当页面B渲染时,状态树中的profile
已被B的信息更改;当它返回到页面A时,它应该保留A的信息,但它也是由B的信息呈现的。
到目前为止,我有两个解决方案:
使用profileList
保持所有个人资料页面都已打开。这意味着我必须为每个可以递归打开的页面保留一个列表。缓存配置文件数据确实是一个很好的方法,这对切断请求也很有帮助。但这意味着我必须使状态树更复杂,并注入更多概念(例如重新选择)。在我构建应用程序的架构时,增加复杂性对其他开发人员来说并不友好。
返回页面时重新呈现配置文件页面。我不认为这是一种优雅的方式。
我该如何解决这个问题?