官方文档
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? 全局状态管理?