gpt4 book ai didi

javascript - Redux,使用调度并且不要变异..除了有时?

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

好吧,我对 Redux 还很陌生。我正在浏览创建者的 30 个教程。到目前为止,我一直在密切关注,但在视频 17 中出现了一个曲线球:

https://egghead.io/lessons/javascript-redux-react-todo-list-example-adding-a-todo

核心概念的销售方式为:

  • 整个应用状态表示为单个不可变对象(immutable对象)
  • 您不会改变该状态 - 只需通过调用 dispatch 即可表达愿望

但是突然间,在这段视频中:

  1. 全局变量用于跟踪应用状态(要添加的下一个 ID)
  2. 其值直接发生变化 - 无需分派(dispatch)操作
  3. 直接读取/写入文本框的内容,同样不使用状态或调度

继续前面所说的内容,我猜测下一个项目 ID 和文本都是应用程序状态对象的一部分。

这是不假思索地完成的,我正在尝试对引入的每一步进行处理和推理,并找出任何意义。可能已经完成了,请随时告诉我!但为了以防万一,我有一些猜测为什么会这样,尽管它们并不像到目前为止卖给我的所有东西那么“整洁”。它们主要围绕定义(或重新定义)“应用程序状态”。这一切似乎都是任意的 - 例如:

  • 仅仅是因为这些“正在进行中”的新项目状态属性是简单值类型吗?
  • 因为我们认为定义的操作之间发生的任何事情都是无关紧要的?
  • 因为在某些时候我们都想偷偷地恢复一点懒惰,但我们可以在这里逃脱惩罚吗?
  • 因为我们私下承认在某些时候 reducer 更加冗长? :)

所以,我想看看是否有一个共识/正确且明确的答案 - 谢谢。

最佳答案

我想如果你从头到尾看完教程系列,他就会摆脱 id 生成逻辑。一般来说,无论如何,这不属于客户端。我认为他会摆脱直接文本框访问。

但是,作为一个原则,您可能会认为自动增量值的生成是进行突变的合理位置。

至于直接读取和写入文本框,我想说这通常不是“React”的处理方式。我已经在一些自定义组件中完成了它(例如,出于特殊屏蔽原因),但通常,您将文本框绑定(bind)到某个状态值并使用化简器更新该值。

围绕读/写输入状态有许多模式。 Redux form是一种流行的。

我个人使用事件委托(delegate),并且每个表单都有一个事件处理程序,它根据状态/值更改的输入名称更新状态。我发现这会产生最少的代码量,通过单个操作和相对简单但灵活的 reducer 将状态更新保留在一个地方。

关于javascript - Redux,使用调度并且不要变异..除了有时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38286309/

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