Cod*_*tle 0 javascript reactjs react-hooks
今天我和一位同事争论关于使用returna 中的“”键useEffect来停止代码执行。我了解到return只能在清理时使用。
问题:
useEffect(() => {
if (stateCondition) {
//do fancy stuff
return;
}
// more code to execute if condition is not met
}, [props]);
Run Code Online (Sandbox Code Playgroud)
我的看法是,我们也许应该有另一个useEffect仅在状态为 false 时才执行的方法,而不是使用return上面的“”。
我试图找到一些文件来支持我的主张,但到目前为止我还没有找到。
我在寻找什么:
我在这儿吗?是否有文件支持我的主张或其他方式?
从技术上讲,在这种情况下并没有真正的区别。因为return;显式 return undefined,任何不返回任何内容的 JavaScript 函数都已经隐式返回了它。
React 框架知道不执行undefined清理函数,因此不会造成任何损害。
从清理函数以外的函数返回任何其他内容,或者可能会导致错误。如果您愿意,您可以测试它,但这是一个没有实际意义的问题,只不过是一时的好奇心,因为您根本不应该这样做,因为有记录表明返回函数会发生清理。useEffectundefineduseEffect
作为一个意见,我建议永远不要return在任何函数中使用useEffect,除非它明确是一个清理函数。即使在这种特殊情况下没有造成任何损害,遇到这种模式的其他开发人员也可能不知道这一点,并且可能会对从效果返回感到困惑。
对于这种特殊情况,似乎一个简单的else块就会产生相同的逻辑。
| 归档时间: |
|
| 查看次数: |
450 次 |
| 最近记录: |