Reactjs 使用Useffect是绝对必要的吗?

Reactjs 使用Useffect是绝对必要的吗?,reactjs,react-hooks,use-effect,Reactjs,React Hooks,Use Effect,我已经使用React钩子几个月了,并且严格按照文档使用useEffect钩子 一位新同事加入了团队,他问为什么需要useffect。我们一起浏览了文档,但他指出实现useffect会导致额外的渲染 下面是一个简单的用例:按下按钮获取一些数据。单击由单击事件处理程序处理。他想知道为什么不能直接在事件处理程序中对端点进行异步调用 我正在寻找一个超越“医生说你不应该”的解释,并实际解释这样做的危险或负面影响 有人可以分享原因吗?简而言之,它用于任何副作用(不仅仅是获取数据): 副作用是在被调用函数之外

我已经使用React钩子几个月了,并且严格按照文档使用
useEffect
钩子

一位新同事加入了团队,他问为什么需要
useffect
。我们一起浏览了文档,但他指出实现
useffect
会导致额外的渲染

下面是一个简单的用例:按下按钮获取一些数据。单击由单击事件处理程序处理。他想知道为什么不能直接在事件处理程序中对端点进行异步调用

我正在寻找一个超越“医生说你不应该”的解释,并实际解释这样做的危险或负面影响


有人可以分享原因吗?

简而言之,它用于任何副作用(不仅仅是获取数据):

副作用是在被调用函数之外可以观察到的任何应用程序状态更改,而不是其返回值。副作用包括:

  • 修改任何外部变量或对象属性(例如,全局变量) 变量,或父函数范围链中的变量)
  • 登录到控制台
  • 在屏幕上写字
  • 写入文件
  • 向网络写信
  • 触发任何外部进程
  • 调用具有副作用的任何其他函数
在函数式编程中,通常可以避免副作用,这使得程序的效果更容易理解,也更容易测试。
Haskell和其他函数式语言经常使用分离和封装纯函数的副作用。

他可以<代码>使用效果用于在安装或更新组件时执行副作用。类似于
componentDidMount
componentdiddupdate
@sam Yes,使用
useffect
替换那些生命周期事件是确定的用例,但它的用途远远超出了这些用例。谢谢。您概述的也是我对React钩子和函数式编程的理解。我很好奇你对Matt Aft在下面写的东西的想法。