gpt4 book ai didi

reactjs - 在 redux 存储中存储类的函数和实例可以吗?

转载 作者:行者123 更新时间:2023-12-03 14:13:35 28 4
gpt4 key购买 nike

我想知道 redux store 中可以存储什么、不能存储什么,以及为什么不能存储什么。

我听说我不应该存储 Class 的实例,因为它们不容易序列化(...?)

像这样的函数怎么样?

function person(firstName, lastName) {
let _firstName = firstName;
let _lastName = lastName;

return {
fullName: `${_firstName} ${_lastName}`
}
}

另外,我想知道我是否不应该存储 Class 的实例,为什么 redux 建议将 immutable.js 对象存储到 redux 存储中,尽管 immutable.js 对象是具有许多方法的 Class 实例?

更新

扩展 immutable.js Record 的类的实例怎么样?

最佳答案

Redux 存储应该是应用程序的“单一事实来源”。这是应用程序的所有状态应该驻留的地方。任何可以存储为组件状态的类型都可以存储在 Redux 中。

您的问题似乎由两个主要部分组成。

  1. 组件应该存储在 Redux 中吗? 。 (我假设“类实例”指的是 React 组件)简短的答案是。组件可以分为两部分:标记(以及方法中的关联逻辑)和组件的状态。一旦组件被创建,组件的标记和关联逻辑将永远不会改变。组件的状态不断变化,并且该状态应用于组件,组件的标记也会相应变化。如果我们能够获取组件的状态,我们就可以将其应用到组件并获取必要的标记。因此,将组件存储在 Redux 中不会给我们带来任何好处,因为我们只会加载它一次并且它永远不会改变。

    就 Immutable.js 对象的实例而言,它们通常是表示组件状态的对象。因此,它们是 Redux 存储中应存储内容的主要示例。

    编辑:关于 Immutable.js 记录,它们是普通 json 对象的不可变版本,其形状无法篡改。它们用于表示组件的状态,并且在设计上是不可变的;这使得它们非常适合存储在 Redux 中,因为我们不应该改变存储在 Redux 中的状态

  2. 函数应该存储在 Redux 中吗?答案仍然是。函数是纯逻辑,应用于输入参数以获得输出。对于相同的输入,函数理想情况下会给出相同的输出。因此,存储这些函数将没有任何用处,因为它们一旦创建就永远不会改变。

    您问题中的函数对于相同的输入始终会给出相同的输出。因此,不建议存储该函数;建议将输入值存储在 Redux 中并将其应用于函数以获取输出。

关于reactjs - 在 redux 存储中存储类的函数和实例可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46700253/

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