为什么说React的新Hooks API是游戏改变者

原文信息: 查看原文查看原文

Why React’s new Hooks API is a game changer

- Rudi Yardley

React Hooks是一个很受争议的API,自从alpha版发布以来,有支持者,也有反对者,支持的人觉得它很好,很大程度上改变了React的开发模式,反对的人对这个API很抵制,表现出很多负面的情绪。

作者从React最初ES5语法里的mixins,到ES6的class语法里完全抛弃mixins,以及高阶组件来解决跨组件传递数据的方案。列出了一些高阶组件的问题:

  • 配置很复杂;
  • 不容易区分数据是来自于高阶组件,还是被传递过来的数据;
  • 高阶组件包围着组件,且组件是依赖于高阶组件的。如果组件依赖于高阶组件的数据,要移除高阶组件,这个组件就不能正常运行;

React Hooks是为了解决高阶组件和render props过期的问题,它可以让你使用state来驱动公用的行为,而且:

  • 提供一种方法来state管理的驱动,可以轻易地跟随state所定义的地方;
  • 无感知props。向JSX组件内传递的就是你用props中取到的;
  • 让JSX简单化,将关注点更多地放在组件的渲染上,减少行为上的关注;

当然,这个心API也有缺点,就是在组件被渲染之后,hooks函数必须在函数式组件级别上运行,所以如果你的函数式组件内有块级作用域或循环是不能调用hooks函数的。

希望这篇文章能给你启发,让你更好地理解React Hooks。

分享于 2018-10-31

访问量 1443

预览图片