先考虑几个问题:
-
hook之前的函数组件时什么样子?
无状态,无副作用,只能做单纯的展示组件。
-
class组件有什么弊端,为什么要引入hook?
- 在组件间复用状态逻辑很难
- 复杂组件变的难以理解
- 难以理解的class
-
引入hook之后的函数组件发生了哪些变化?
函数组件可以存储和改变状态值(useState、useReducer),可以执行副作用(useEffect、useLayoutEffect),还可以复用状态逻辑(自定义hook)。
-
函数组件与class组件如何选择?
出现以上缺点的情况下都适合使用函数组件