【发布时间】:2019-12-26 12:04:33
【问题描述】:
我一直在考虑编写自己的 React 钩子,但到目前为止,我一直在努力从技术层面上说明普通 JavaScript 函数和钩子之间的区别。
例如,this 文章说钩子是“可以在其中使用其他钩子的普通 JavaScript 函数”,但幕后还有什么?
我知道我们在钩子名称中使用了 use 这个词,但我很好奇钩子是什么让它们成为钩子而不是函数!
【问题讨论】:
-
自定义钩子通常会调用其中的其他钩子。
-
谢谢,但我不能只用函数来做吗?
-
使函数成为钩子的是 React 以某种方式跟踪函数调用。这允许 React 在函数调用之间保持状态(通用状态,而不是 React 状态)。换句话说,React 能够将函数调用(及其输入和输出)与特定的 React 元素相关联。
-
请记住,钩子在基因上是作为回调实现的。那就是框架调用您向其注册的特定函数。因此,您将根据 react 的定义编写具有正确类型的钩子,并通过传递对要响应的函数的引用来告诉 react 调用该函数。
标签: javascript reactjs react-hooks