内容简介:昨天,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。建议开发人员启用一个名为e
昨天,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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。