在React Hooks中定义函数,应该使用函数声明还是const?

3
当我有一个React Hook,并且我想在其中定义一个函数时,我最好使用哪种方法?
useEffect(() => {
    //...
    function handler() {}
    //...
}, []);

或者使用更新的常量声明
useEffect(() => {
    //...
    const handler = () => {}
    //...
}, []);

这两者完全等价,还是在Javascript处理这些内容时存在区别吗?

如果我定义一个常量,它仅在当前范围内有效,而定义函数则可以在其他地方有效,这是真的吗?

React需要在不同作用域中访问这些函数吗?还是它们保持在当前hook作用域本地访问?

2个回答

3

1
有很多文章可以看到一些差异的良好解释,并决定使用哪个:https://www.freecodecamp.org/news/constant-confusion-why-i-still-use-javascript-function-statements-984ece0b72fd/ - Dan Mason
@Purgatory覆盖了Javascript,但我想知道React是否需要它们在不同作用域中可访问。 - user6329530
@Purgatory,你说得对,我不应该仅仅为了这个新手用户而给出答案 :) 已编辑 - Renaldo Balaj
@Supertyp React JavaScript。 - Emile Bergeron
在React Hooks中,它们具有相同的作用域。 - Renaldo Balaj
1
@EmileBergeron 确实。 - user6329530

2

React钩子只能在纯组件即函数中使用。因此,你做的大部分事情就像使用一些JavaScript函数一样工作,没有太大的区别。在钩子本身中,并不是所有的事情都是可能的,比如我曾经尝试过让useEffect钩子回调成为异步函数,并得到一个警告,建议在其中运行异步函数。

在纯组件内部,那个函数并不需要任何this。所以,正如Renaldo Balaj所说,使用常规函数还是箭头函数并没有什么区别。


我的名字在答案里 :v --- 立即点赞 - Renaldo Balaj
哈哈,好的,谢谢)) - Ivan Cherviakov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接