我已经使用React Hook几个月了,并严格按照文档使用useEffect
挂钩。
一个新同事加入了团队,他在问为什么useEffect
是必要的。我们一起阅读了文档,但他指出实施useEffect
会导致额外的渲染。
这是一个简单的用例:按下按钮以获取一些数据。点击由Click事件处理程序处理。他想知道为什么他不能直接在事件处理程序中对端点进行异步调用。
我正在寻找一种超出“文档说你不应该”的解释,而实际上是在解释这样做的危险或弊端。
任何人都可以分享原因吗?
答案 0 :(得分:1)
简而言之,它可用于任何副作用(不仅用于获取数据):
副作用是在调用函数之外可观察到的任何应用程序状态更改,而不是其返回值。副作用包括:
在函数式编程中通常避免产生副作用,这使得程序的效果更易于理解和测试。 Haskell和其他功能语言经常使用monads将副作用与纯函数隔离并封装起来。