React中Hook出现的原因以及如何自定义一个Hook

Hook 是 React 在16.8版本以后提出的,它的出现主要是为了可以让我们在不实用类组件时也能使用state以及其他的React的功能。

React出现的原因:

1. 组件之间复用状态逻辑很难

当组件之间需要共享一些状态时,就会在状态管理中出现很多相关的逻辑代码。一般会使用高阶组件或者renderPropos来处理这些逻辑的复用。但是这两种方法都有缺点(本处不再详细描述),所以使用Hook来处理这些逻辑。Hook相对以上两种方法有以下优点:

写法简单

组合简单

容易扩展

没有Wrapper hell

2. 复杂的组件可读性差

如果一个组件的逻辑很复杂,就有可能导致每个生命周期包含一些不相关的代码。而Hook可以讲组件中相互关联的部分拆的颗粒度更小,似的代码更简洁,结果也更加可预测。

3. Class组件现存的一些问题

class组件中this的复杂性以及生命周期函数的不确定性都使得class组件是一个难以使用的存在。想要使用函数组件却没有对应的状态管理,所以Hook就实现了一些和生命周期函数类似的功能,解决了以上问题。

如何定义自己的Hook

自定义 Hook 是一个函数,其名称以 “use” 开头,函数内部可以调用其他的 Hook,自定义 Hook 是一种自然遵循 Hook 设计的约定,而并不是 React 的特性(需要注意的是自定义hook需要以use开头,useState(),useContext(),useReducer(),useEffect()是react自带的钩子)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容