- 为什么需要 Hooks ?
- React 组件之间不会互相继承,我们不推荐创建一个 Button 组件,然后再创建一个 Dropdown Button 来继承 Button
- 所有 ui 都是状态驱动,很少在外部去调用一个类实例(即组件)的方法。组件的所有方法都是在内部调用,或者作为生命周期方法被自动调用。
- 函数组件无法存在内部状态,必须是纯函数,而且也无法提供完整的生命周期机制,极大限制了函数组件的大规模使用。
- 函数和对象不同,没有一个实例的对象能够在多次执行之间保持状态,势必需要一个函数之外的空间保存这个状态,而且要检测其变化,从而能够触发函数组件的重新渲染。
- 为了更好的逻辑复用。
- 内置的 hooks
- hooks 定义规则:
- 所有 hook 必须被执行到,也就是不能放在判断条件中
- 所有 hook 必须按照顺序执行。
- 四个典型的使用场景
- 抽取业务逻辑
- 封装通用逻辑
- 监听浏览器状态
- 拆分复杂组件
tanstack query
本身19已经支持 async function
常用的第三方库
- lodash
- ant design
- material ui
- react-use