【发布时间】:2022-01-20 23:43:42
【问题描述】:
请原谅我问了一个可能很愚蠢的问题。
我的理解是 React 中的函数式组件是函数式的,因为它们返回一个视图,它们的状态不能直接改变,必须通过 setState() 函数来完成。它们没有任何直接改变的变量,至少在某种意义上我们不能像var = 'something'那样更新它们。
我的困惑是,即使我们使用这些函数设置状态,仍然完全有可能使逻辑依赖于以特定方式存在的状态。功能组件中的程序代码较少,但它仍然存在通过useEffects 在某些点修改此状态。所以即使我们是通过一个函数来做的,状态仍然会在某些时候发生变化。
我认为我对函数式编程的理解可能存在差距。目前在我的脑海中,似乎 FP 需要一个不会改变的程序最高级别的状态。但是大多数应用程序确实需要某种状态更改,如果不是在这个高应用程序级别,那么在本地组件级别,否则组件不会做任何事情。
我现在理解的是 FP = 状态变化很小,一切都是即时计算的,但顶部的状态保持不变
所以即使我们在 redux 之类的东西中有 reducer 等,我们最终仍然会改变状态?是的,有历史以这种方式改变状态,但除此之外还有什么好处?不是讽刺评论,我真的很困惑
我希望这是有道理的。我知道我错了,我只是不明白我怎么错了。如果有人可以帮助我,将不胜感激。
【问题讨论】:
标签: javascript reactjs redux functional-programming react-functional-component