手机版
你好,游客 登录 注册
背景:
阅读新闻

React 16.8 发布,Hooks的稳定实施

[日期:2019-02-07] 来源:Linux公社  作者:醉落红尘 [字体: ]

昨天,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

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款