类别:react / 日期:2022-12-31 / 浏览:330 / 评论:0

React Hooks 的限制主要有两条: 不要在循环、条件或嵌套函数中调用 Hook; 在 React 的函数组件中调用 Hook。

那为什么会有这样的限制呢?Hooks 的设计初衷是为了改进 React 组件的开发模式。在旧有的开发模式下遇到了三个问题。

组件之间难以复用状态逻辑。过去常见的解决方案是高阶组件、 render props 及状态管理框架。

复杂的组件变得难以理解。生命周期函数与业务逻辑耦合太深,导致 关联部分难以拆分。

人和机器都很容易混淆类。常见的有 this 的问题,但在 React 团 队中还有类难以优化的问题,希望在编译优化层面做出一些改进。这三个问题在一定程度上阻碍了 React 的后续发展,所以为了解决这 三个问题,Hooks 基于函数组件开始设计。然而第三个问题决定了 Hooks 只支持函数组件。-React

那为什么不要在循环、条件或嵌套函数中调用 Hook 呢?因为 Hooks 的设计是基于数组实现。在调用时按顺序加入数组中,如果使用循环、 条件或嵌套函数很有可能导致数组取值错位,执行错误的 Hook。当 然,实质上 React 的源码里不是数组,是链表。-react

这些限制会在编码上造成一定程度的心智负担,新手可能会写错,为 了避免这样的情况,可以引入 ESLint 的 Hooks 检查插件进行预防。

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章

评论区

发表评论 / 取消回复

必填

选填

选填

◎欢迎讨论,请在这里发表您的看法及观点。

«    2023年11月    »
12345
6789101112
13141516171819
20212223242526
27282930

最新留言