脱萝妇司机
脱萝妇司机
8天前 · 1 人阅读

昨天,React开发人员之一Dan Abramov宣布发布React 16.8,它附带了每个人都在等待的功能,“Hooks”。这个功能于去年首次登陆React 16.7-alpha,现在可以在这个稳定的版本中使用。

这种React Hooks的稳定实现可用于React DOM,React DOM Server,React Test Renderer和React Shallow Renderer。 React DevTools以及最新版本的Flow和TypeScript也支持Hook。建议开发人员启用一个名为eslint-plugin-react-hooks的新lint规则,该规则强制执行Hooks的最佳实践。默认情况下,它也将包含在Create React App工具中。

什么是Hooks?

在React Conf 2018中,Sophie Alpert和Dan Abramov解释了React目前的局限性以及如何使用Hook解决它们。 React Hooks基本上是允许您通过功能组件“挂钩”或使用React状态和其他生命周期功能的函数。 Hooks具有各种优点,例如可以轻松地重用React组件,拆分相关组件,以及在没有类的情况下使用React。

React 16.8有什么新功能?

目前,Hooks不支持所有类的用例,但很快就会支持。只有两个方法,即getSnapshotBeforeUpdate()和componentDidCatch(),没有它们的Hooks API对应物。

在此稳定版本中引入了名为ReactTestUtils.act()的新API。此API可确保测试中的行为与浏览器中的行为更紧密地匹配。 Dan Abramov在一篇文章中建议包装代码呈现并触发对其组件的更新为act()调用。

其他变化包括:

  • useReducer Hook延迟初始化API得到了改进
  • React.lazy()中添加了对synchronized thenables的支持
  • 使用严格模式下的Hooks(仅DEV)渲染组件两次,类似于类行为
  • 在后续渲染中返回不同的Hooks时会显示警告
  • useImperativeMethods Hook被重命名为useImperativeHandle
  • Object.is算法用于比较useState和useReducer值

要使用Hooks,您需要将所有React软件包更新到16.8或更高版本。另外,React Native将从React Native 0.59版本开始支持Hooks。

更多详情请在他们的官方网站上阅读React 16.8中的所有更新

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-02/156771.htm

收藏 0
react hooks 16.8 稳定 实施
评论 ( 0 )