自定义Hook本质上只是一种函数代码逻辑的抽取。可以看做是 React Hooks 的之外的自由延伸。本质上还是 JavaScript 函数。
特点
- 名字一定是以
use
开头的函数,这样 React 才能够知道这个函数是一个 Hook。 - 函数内部一定调用了其它的 Hooks,可以是内置的 Hooks,也可以是其它自定义 Hooks
它与普通函数的区别在于普通函数中不可以调用hooks
自定义 Hooks 主要有两点优势:逻辑复用,复杂代码分离
使用场景:封装可复用的逻辑、监听数据的状态、拆分复杂的逻辑
简易版useState
定义了一个 useState 函数,接收一个初始值作为参数。使用闭包,创建了一个局部变量 state,并将初始值赋给它.
然后,定义了 setState 函数,它接收一个新的值作为参数,并将 state 更新为新的值
最后返回一个数组,包含 state 和 setState,使其可在组件中使用