自定义hook or CF ?(common function)

1,152 阅读1分钟

hook本身就是个函数,那它和普通的函数有什么区别?

什么时候我应该抽hook;什么时候应该放util里,当个通用函数合适?

1.调用时机不同和调用方法不同。

在FC里使用的时候,自定义hook和CF都通过import作为FC的一部分,但调用时机不同。hook(因为必须写在顶部),在每次渲染的时候都会调用;但通用函数则需要手动调用。

2.命名方式不同。

hook必须useXXX命名,CF就很灵活了。

3.能使用的工具不同。

hook中可以使用其他hook,比如useEffect, useState;但CF不行,CF只能处理没有hook的逻辑。

4.使用场景不同。

CF可以被用在任何地方,但hook只能被用在FC或者其他hook中。

最后,react的存在,让hook不同于普通的function。