在 React 钩子、函数语句或 const 中定义函数?

Define function in react hooks, function statement or const?

当我有一个反应钩子并且我想在其中定义一个函数时,我会更好地使用

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

或较新的 const 声明

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

两者完全相同还是在 Javascript 处理这些事情的方式上存在差异?

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

React 是否需要在不同范围内访问的函数,或者它们是否停留在当前 hook 范围内?

因为 THIS 是过去使用 React Hooks 的一部分,你可以同时使用它们 :) 它只是语法糖 es6。

如果您想更深入地了解它们的差异,可以阅读这篇文章:https://www.freecodecamp.org/news/constant-confusion-why-i-still-use-javascript-function-statements-984ece0b72fd/(还有很多)

但在 React Hooks 中它们具有相同的作用域

你只能在纯组件中使用 React hooks,即函数。所以你在那里做的大部分事情就像你只使用一些 js 函数一样工作,实际上没有太大区别。在 hooks 本身并不是所有的事情都是可能的,比如有一次我试图让 useEffect hook 回调成为异步函数并得到警告 运行 async function inside inside.

在纯组件内部,那个函数,你真的不需要任何this,所以正如Renaldo Balaj所说,使用usual或箭头函数没有区别。