在反应挂钩,函数语句或const中定义函数?

时间:2019-11-28 16:01:07

标签: javascript reactjs react-hooks

当我有一个React钩子并且在其中时,我想在其中定义一个函数,我最好使用

useEffect(() => {
    //...
    function handler() {}
    //...
}, []);

或更新的const声明

useEffect(() => {
    //...
    const handler = () => {}
    //...
}, []);

Javascript处理这些事情是否完全相同?

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

React是否需要在不同作用域中可访问的功能,或者它们仍保留在当前挂钩范围中?

2 个答案:

答案 0 :(得分:2)

由于 THIS 过去已经使用React Hooks了,所以您可以同时使用它们:)只是语法糖es6。

如果您想进一步了解它们之间的差异,可以使用这篇文章:https://www.freecodecamp.org/news/constant-confusion-why-i-still-use-javascript-function-statements-984ece0b72fd/(还有很多)

反应灵敏的钩子具有相同的范围

答案 1 :(得分:2)

只能在纯组件中使用反应挂钩,即功能。因此,您在此处所做的大多数事情都可以正常工作,就像仅使用一些js函数一样,实际上并没有太大区别。在钩子本身中不可能实现所有事情,例如一次,我试图使useEffect钩子回调成为异步函数,并收到警告要在其中运行异步函数。

在纯组件内,该功能实际上并不需要,所以正如Renaldo Balaj所说的,使用常规功能或箭头功能没有区别。