理解 React Hooks 的使用
淡若清风
精选回答
Hook 是 React 16.8 的新增特性。它可以让你在不编写 `class` 的情况下使用 `state` 以及其他的 React 特性。
一、为什么需要 React Hook
Hook 提案出来前,React 团队总结:了三个 React 比较糟糕的地方:
一是,组件间状态和逻辑的复用很难。有两个复用方案,一个是使用 Render Props,另一个是使用 高阶组件,但它们都需要重新组织组件结构,过多的组件间嵌套会形成“包装地狱”,这会令组件间状态的跟踪非常困难。
二是,随着项目维护,很容易出现拥有相当多逻辑的大型组件,它们充斥着状态逻辑与副作用,并且每个生命周期方法中包含着不相关的逻辑,这很容易产生 bug。
三是,为了使用 state 和生命周期方法,就必须要使用 class 组件,而理解 class 需要较高的成本,并且 class 在编译时不能很好地被压缩(方法名无法被压缩,而且也不会剔除掉没有使用过的方法),class 也会让热加载变慢。另外,对于开发者来说,也很难去区分何时该用 class 组件而何时该用 function 组件。
对于第一点,我们需要复用组件间有状态的逻辑,但又不想修改组件的层级;对于第二点,我们不想将本应独立的逻辑拆分在不同的生命周期方法中;对于第三点,我们需要在避开class的情况下在组件中使用更多的 React 特性。
而 React Hook,就能解决以上三个问题
二、使用 React Hook
古道儒风 2023-08-28 16:39:34
相关推荐
心里迷茫的伤感句子
1、暧昧的人,连再见都不知从何说起,因为本来就没有关系,因为我们谁也不是谁的谁。2、就算很失望,笑容依然要灿烂!3、学习要加,骄傲要减,机会要乘,懒惰要除。4、朋友之间很少谈论未来,但是未来他们往往还在一起;恋...
展开详情火龙果水果保鲜的方法
1、在室内要尽量将火龙果放置在阴凉并且没有光的地方,一般情况下只能存放一天。2、火龙果在切开后有剩余,可用保鲜膜或袋子包起来,放在冰箱中冷藏。3、火龙果属于热带水果,因此在冰箱冷藏时,要将温度调为十五度,此方法...
展开详情新年烧香祈福说说
1、阿弥陀佛,人生在世不容易,求佛菩萨保佑我全家人苦难不近身,平安健康永相随,一切万事顺心如意。2、愿你我生生世世长相逢,同行同愿同圆种智功德海。3、阿弥陀佛,祝福所有亲人朋友,健健康康、平平安安。4、求佛保佑...
展开详情新年感言一句话
1、祝愿新的一年身边的家人朋友都开开心心、健健健康、好运连连!2、我的祝福,如春天般的温柔甜蜜,长久深深种植地保留在您的心田,祝妈妈您拥有甜蜜温馨快乐的一年!3、亲爱的自己,永远不要为难自己,比如不吃饭、哭泣、...
展开详情手上有倒刺应该怎么解决
1、温水泡手有人说起了倒刺的时候我不用手直接撕,用剪刀剪去不就行了么?不是的哈,正确的处理方法是打一盆四十度左右的水,然后把手浸泡进去,这样浸泡五分钟之后,手指甲以及手上的倒刺,还有手指头周围的皮肤都变的非常柔...
展开详情