理解 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
相关推荐
游鉴湖秦观原文翻译
宋朝是文学作品发展的高峰时期,有很多文人留下了不少经典的作品。比如说苏轼、李清照、辛弃疾、秦观等一大批优秀的诗词作家,都有脍炙人口的作品。游鉴湖秦观原文翻译游鉴湖[宋]秦观画舫珠帘出缭墙,天风吹到芰荷乡。水光入...
展开详情雨果的创作生涯可分为几个时期
雨果1802年2月26日出生于法国东部城市贝桑松,出生6周后,雨果随父母到处奔波。雨果幼时便显露出极高的文学天赋,后来的创作产生了不小的影响。雨果的创作生涯可分为几个时期雨果的创作生涯可分为四个时期。第一个创作...
展开详情歌德的少年维特之烦恼是一部什么小说
歌德1749年8月28日出生于法兰克福镇的一个富裕家庭。小时候歌德的父亲非常严肃,相反,母亲用不同于父亲的温柔母爱来安慰、保护着歌德、鼓励和引导他的学习兴趣,努力培养歌德正确理解文学的能力。歌德的少年维特之烦恼...
展开详情李清照早期词风是什么
李清照,号易安居士,其作品多为婉约风格,属于婉约派代表词人。她有“婉约之词宗”之称,开创了重要的词体“易安体”,该词体对词坛影响深远。李清照是文学史上有名的天才女作家,被称为“千古第一才女”,在我国文学史上占据...
展开详情