官方文档

https://reactjs.org/docs/hooks-intro.html

hooks使用规则

  • 只可以在顶层调用栈调用hooks

不可以在循环/条件/嵌套里调用hooks

  • 只可以在react function或自定义hooks里调用hooks

原因见hooks调用记录表底层

hooks调用记录表底层_单链表结构

hooks的引用记录,是用单链表结构实现的;(可在力扣/leetcode网找一下实现单链表的算法);
每一个链表节点(node)都有一个next的指针指向下一个node;
如果中间有缺失,那么就无法找到下一个next;
因此hooks不可以在条件里调用(有可能丢失链表node);

常见面试题

  • useEffect与useLayoutEffect的区别
  • 实现一个componentDidmount / componentWillUnmount
  • why useCallback? 它的实现底层是?
  • useMemo与useCallback?
  • useContext? 全局状态管理?