Reactjs 使用Useffect是绝对必要的吗?
我已经使用React钩子几个月了,并且严格按照文档使用Reactjs 使用Useffect是绝对必要的吗?,reactjs,react-hooks,use-effect,Reactjs,React Hooks,Use Effect,我已经使用React钩子几个月了,并且严格按照文档使用useEffect钩子 一位新同事加入了团队,他问为什么需要useffect。我们一起浏览了文档,但他指出实现useffect会导致额外的渲染 下面是一个简单的用例:按下按钮获取一些数据。单击由单击事件处理程序处理。他想知道为什么不能直接在事件处理程序中对端点进行异步调用 我正在寻找一个超越“医生说你不应该”的解释,并实际解释这样做的危险或负面影响 有人可以分享原因吗?简而言之,它用于任何副作用(不仅仅是获取数据): 副作用是在被调用函数之外
useEffect
钩子
一位新同事加入了团队,他问为什么需要useffect
。我们一起浏览了文档,但他指出实现useffect
会导致额外的渲染
下面是一个简单的用例:按下按钮获取一些数据。单击由单击事件处理程序处理。他想知道为什么不能直接在事件处理程序中对端点进行异步调用
我正在寻找一个超越“医生说你不应该”的解释,并实际解释这样做的危险或负面影响
有人可以分享原因吗?简而言之,它用于任何副作用(不仅仅是获取数据): 副作用是在被调用函数之外可以观察到的任何应用程序状态更改,而不是其返回值。副作用包括:
- 修改任何外部变量或对象属性(例如,全局变量) 变量,或父函数范围链中的变量)
- 登录到控制台
- 在屏幕上写字
- 写入文件
- 向网络写信
- 触发任何外部进程
- 调用具有副作用的任何其他函数
Haskell和其他函数式语言经常使用分离和封装纯函数的副作用。他可以<代码>使用效果用于在安装或更新组件时执行副作用。类似于
componentDidMount
和componentdiddupdate
@sam Yes,使用useffect
替换那些生命周期事件是确定的用例,但它的用途远远超出了这些用例。谢谢。您概述的也是我对React钩子和函数式编程的理解。我很好奇你对Matt Aft在下面写的东西的想法。