【发布时间】:2020-09-14 13:36:31
【问题描述】:
我正在尝试使用 JavaScript 函数式编程技术来避免状态。我扎实掌握了许多基本的 fp 技术,例如闭包、柯里化等。但我无法全神贯注地处理状态。
我想知道创建函数式程序的人将如何实现以下非常简单的应用程序:
用户单击浏览器中的按钮(jQuery 实现很好)。每次用户单击按钮时,屏幕上的值应增加 1。
我们如何在不改变状态的情况下做到这一点?如果需要突变状态,从功能的角度来看,最好的方法是什么?
【问题讨论】:
-
函数式方法不是避免状态,而是明确状态。在某种抽象层面上,我们甚至无法做到这一点,因为 DOM 只是可变的,而用户交互是有状态的。
-
我知道 DOM 是可变的,需要一个带有副作用的函数来更新 DOM。所以这里肯定有一些给予和接受。在这种情况下,您将如何明确表示状态?
标签: javascript functional-programming state immutability