React Hooks相关

Posted dfqin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Hooks相关相关的知识,希望对你有一定的参考价值。

一、React在16.8推出了Hooks特性,React Native是在0.59版本开始支持,官方解释了推出Hooks的原因(官方文档):

1、组件间状态逻辑难以复用。之前通常使用高阶组件来解决这种问题,但是这种方式通常需要改变你的组件结构,并且会导致组件嵌套地狱,导致代码难以追踪。使用Hooks可以从组件中抽取状态逻辑,可以单独测试,也可以复用。Hooks可以让你在不改变组件结构的情况下实现状态逻辑复用( Hooks allow you to reuse stateful logic without changing your component hierarchy)。

2、复杂组件难以理解。一些组件随着业务迭代会添加越来越多的状态逻辑,在生命周期方法中通常包含一堆不相干的逻辑,这样的话很容易引入bug。很多状态逻辑都跟声明周期相关,所以这些代码也不好拆分。Hooks允许根据功能把一个组件拆分为更小的函数,而不用被迫去拆分生命周期函数。

3、不用再考虑this的指向问题。因为在js中this的使用与其他语言不同,这会提高使用react的学习成本,并且容易出错。而使用Hooks可以不依赖class使用React的特性。

二、当然使用Hooks也有一些缺点:

1、闭包陷阱,可以参考以下文章:闭包陷阱 ,主要是一些异步回调中拿到的state值通常不是最新值,通常需要使用useRef来解决。

三、实现原理:TODO

参考文档:https://segmentfault.com/a/1190000038431635

https://segmentfault.com/a/1190000039171753?utm_source=sf-similar-article

谈谈react hooks的优缺点 - 知乎

以上是关于React Hooks相关的主要内容,如果未能解决你的问题,请参考以下文章

浅谈:为什么vue和react都选择了Hooks?

React Hooks 实现原理

从Mixin到hooks,谈谈对React16.7.0-alpha中即将引入的hooks的理解

React Hooks - 具有解构数组变量的 JSDoc

React hooks:它们对共享状态管理有用吗,例如还原?

Redux-Toolkit 和 React Hooks - 存储更改不会触发重新渲染