gpt4 book ai didi

redux - 为什么使用 redux 保持不可变状态

转载 作者:行者123 更新时间:2023-12-04 03:00:37 24 4
gpt4 key购买 nike

我正在学习 redux 并且正在努力理解为什么状态必须是不可变的。你能给我提供一个例子,最好是在代码中,破坏不可变契约会导致不那么明显的副作用。

最佳答案

Redux 最初是为了演示“时间旅行调试”的想法而发明的——能够在已调度操作的历史记录中来回走动,并查看每一步的 UI 是什么样子。另一方面是能够实时编辑代码,重新加载它,并查看给定新的 reducer 逻辑的输出是什么样的。

为了能够正确地在状态之间来回切换,我们需要确保 reducer 函数没有副作用。这意味着数据更新需要一成不变地应用。如果reducer 函数实际上直接修改了它的数据,那么在状态之间来回切换将导致应用程序以意想不到的方式运行,调试工作将被浪费。

此外,React-Redux 库依赖浅层相等性检查来查看组件的传入数据是否已更改。如果数据引用相同,则 connect 生成的包装组件假设数据没有改变,并且组件不需要重新渲染。不可变数据更新意味着创建新的对象引用,因此 connect将看到数据已更改且 UI 需要更新。

关于redux - 为什么使用 redux 保持不可变状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39343700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com