为什么Redux应用程序的存储必须是可序列化的

时间:2017-11-24 11:52:40

标签: serialization redux

首先:这不是一个意见问题(我担心会有人提出这个问题),我对技术背景或决定感兴趣。

话虽如此:Redux的商店需要可序列化。不允许或不赞成使用模型类并在商店中编写它们的实例。这对我来说非常烦人。应用程序逻辑最终会出现在动作或减速器中,模型将是一件好事。

我想知道为什么。这背后的技术决策是什么?为什么不将类实例写入商店?

1 个答案:

答案 0 :(得分:2)

1)实例中的类是可变的,这导致了redux试图通过支持不变性来解决状态可预测性的相同问题。这也意味着如果与React配对,您必须对更改进行更多手动shouldComponentUpdate检查(因为即使内部状态发生变化,对变异实例的引用也会相同)

2)不变性使得可以在状态之间来回移动(例如在时间旅行调试期间),这是在实例中发生突变时无法完成的事情

3)序列化意味着它非常容易持久化和重新水化商店(往返于JSON),以实现更高级的用途,例如服务器端呈现和离线使用

如果您感兴趣我只是写了一个更深入的答案来回答一个类似的问题,并举例说明如何使用这两个世界中最好的https://stackoverflow.com/a/47472724/7385246