React JavaScript UI 库中的新增功能

现在在生产版本中可用, React JavaScript UI库的 16.8版具有挂钩功能,无需编写类即可使用状态和其他React功能。

在哪里下载React

您可以从GitHub 下载producton版本的React 。

当前版本:React 16.8的新功能

React 168于2019年2月发布,为React的DOM,DOM服务器,测试渲染器和浅渲染器提供了钩子的实现。 React DevTools支持钩子。 开发人员可以构建自己的钩子,以在组件之间共享可重用的状态逻辑。 但是,Facebook建议开发人员花些时间使用此功能,而不建议开发人员重写应用程序以“隔夜”使用钩子。

目前尚无计划从React中删除类,因此开发人员应尝试在一些新组件中使用钩子。 使用代码挂钩的代码将与使用类的现有代码一起使用。

先前版本:React 16.7中的新功能

React 16.7发布于2018年12月,增加了钩子功能,无需编写类即可使用状态和其他React功能。

挂钩是从功能组件链接到React状态和生命周期功能的函数。 他们目前与现有代码并肩工作,可以逐步采用。 目前还没有计划从React中实际删除类。 挂钩解决了React中的各种问题,其中包括:

  • 缺乏将可重用行为附加到组件的方法。 已经有诸如渲染道具和高阶组件之类的模式试图解决这一问题,但是这些模式需要对组件进行重组,这可能很麻烦并且使遵循代码变得更加困难。 使用挂钩,开发人员可以从组件中提取状态逻辑,以进行独立测试和重用。
  • 复杂的组件变得太难理解了。 使用挂钩,可以根据相关部分将组件拆分为较小的功能,例如设置订阅或获取数据。 这样做不是强制基于生命周期方法进行拆分。
  • 课堂会使人和机器混淆,被视为学习React的最大障碍。 挂钩使开发人员无需类即可使用React的更多功能。 挂钩包含功能,但不影响React的精神。 通向命令式逃生舱门。 开发人员不必学习复杂的功能或反应式编程技术。

先前版本:React 16.6中的新功能

React 16.6于2018年10月发布,提供了一些增强功能。

  • 使用memo ,开发人员PureComponents使用功能组件进行渲染,类似于使用PureComponentsshouldComponentUpdate输入道具相同时类组件PureComponents shouldComponentUpdate
  • 使用lazy ,开发人员可以通过将动态导入包装在对React.lazy()调用中来使用Suspense组件进行代码拆分。 注意:该功能尚不适用于服务器端渲染。
  • 引入了便捷API,以使用类组件中的上下文值。 开发人员抱怨说,在类组件中采用React 16.3的新渲染道具API可能很困难。
  • 错误方法getDerivedStatefromError()会在渲染完成之前渲染后备UI。 注意:它尚不能用于服务器端渲染,但是开发人员可以开始为此做准备。
  • 不推荐使用两种Strictmode API: findDOMNode()和使用contextTypegetChildContext旧上下文。 鼓励开发人员升级到新的contextType API。

先前版本:React 16.4中的新功能

React的16.4版本于2018年5月下旬发布,增加了对指针事件的支持,一项经常需要的功能以及对即将到来的异步渲染功能的改进。 支持指针事件的浏览器包括Google Chrome,Mozilla Firefox,Microsoft Edge和Microsoft Internet Explorer的版本。

指针事件是为指针设备触发的DOM事件,旨在提供单个事件模型来处理诸如鼠标或触摸之类的设备。

通过对指针事件的支持,React添加了对事件类型的支持,其中包括:

  • onPointerDow
  • onPointerMove
  • onPointerUp
  • onPointerCancel
  • onGotPointerCapture
  • onLostPointerCapture
  • onPointerEnter
  • onPointerLeave
  • onPointerOver
  • onPointerOut

React 16.4中的其他新功能包括:

  • 改进了与计划的异步渲染模式的兼容性。 为此,该版本为getDerivedStatefromProps提供了一个错误修复程序,无论何时进行更新,每次需要一个组件时都将调用该错误修复程序。 仅当组件由父级重新渲染并且由于本地setState而不会触发时才调用它。 该修复程序不会影响大多数应用程序,但是在极少数情况下,可能会导致少数组件出现问题。
  • 实验分析器部件已被添加,称为unstable_Profiler ,用于测量性能。
  • 用于创建自定义渲染器的实验性协调程序具有新的主机配置形状,该形状平坦且不使用嵌套对象。
  • 对React DOM的修复包括修复在某些情况下阻止上下文传播的错误,以及某些错误地从自定义元素节点中删除某些属性的情况。

在React版本16.4中删除了实验性的调用返回功能,因为它会影响包的大小并且API不够好。 Facebook说,在某种程度上可以期待它。

先前版本:React 16.3中的新功能

React的2018年3月版本16.3版本带来了生命周期更改以及上下文API。

React 16.3中的生命周期更改

对于组件生命周期,即将到来的异步呈现模式扩展了类组件API模型,该模型正以最初未打算的方式使用。 因此,正在添加新的生命周期,包括getDerivedStateFromProps ,以作为传统生命周期的更安全替代方法componentWillReceiveProps 。 还添加了g etSnapshotBeforeUpdate ,以支持安全读取属性,例如在进行更新之前的DOM。

React 16.3还向其中一些生命周期添加了“不安全”前缀,例如componentWillMountcomponentWillReceiveUpdate 。 在这些情况下,“不安全”不是指安全性,而是指使用这些生命周期的代码更有可能在React的未来版本中出现错误。

在React 16.3版本中,开发人员无需对遗留方法做任何事情。 该发行版旨在提示开源项目维护者在弃用警告之前更新其库,该警告将在以后的16.x版本中启用。

版本16.3添加了StrictMode组件,该组件标识具有不安全生命周期的组件。 仅在开发模式下运行的StrictMode还会警告有关旧字符串引用API的使用情况,并检测意外的副作用。 它激活对后代的附加检查。 稍后将添加更多功能。

上下文API支持静态类型检查和深度更新

新的上下文API支持静态类型检查和深度更新。 Facebook的React JS核心团队成员Brian Vaughn表示,该API还比以前的实验API版本更有效。 上下文允许数据通过组件树传递,而无需手动传递道具,其中一些道具包括区域设置首选项和UI主题。 旧的API将继续适用于React 16.x版本,使用户有时间进行迁移。

在React 16.3中也是新功能:

  • 一种改进的API,称为createrefAPI ,用于管理引用,该API提供了一种方法来访问在render方法中开发的DOM节点或React元素。
  • forwardRef API,有助于使用促进代码重用的高阶组件。

先前版本:React 16.2中的新功能

2017年11月发布的React 16.2带来了片段功能,以改善对通过组件渲染方法显示多个子代的支持。 类似于空JSX标签的片段,使开发人员可以将子级列表分组,而无需将节点添加到DOM。

您可以从NPM注册表中安装版本16.2。 要使用Yarn软件包管理器安装,请运行yarn add react@^16.2.0 react-dom@^16.2.0 。 要使用NPM进行npm install --save react@^16.2.0 react-dom@^16.2.0 ,请运行npm install --save react@^16.2.0 react-dom@^16.2.0

先前版本:React 16.0中的新功能

2017年9月,React 16.0在其开发过程中被称为“反应纤维”,它是对React核心的重写,通过新的协调算法提高了复杂应用的感知响应能力。 React 16的主要功能包括:

  • 具有组件堆栈跟踪功能的错误使它们更易于调试。
  • 直接从组件渲染方法返回字符串/数组。
  • 一个新的更快的流式服务器端渲染器。
  • 更像本机的应用程序性能 。
  • 从颇具争议的BSD +专利许可向更具吸引力的MIT许可的转变 。

Facebook React工程经理索菲·阿尔珀特(Sophie Alpert)表示,尽管React的内部结构已在React 16中完全重写,但公共API“基本上没有变化”。 目的是使开发人员不必重写使用React构建的现有组件。

根据Facebook的一种熟悉做法,React 16的新代码与旧代码一起在GitHub存储库中编写。 两者之间的切换是通过布尔型useFiber功能标记完成的。 该过程使Facebook在不影响现有用户的情况下开始构建其新的实现,并继续对旧代码库进行错误修复。

在消除错误几个月后,Facebook选择提供一种产品来减少可能的错误集,而不是使两个版本的React保持最新状态。

From: https://www.infoworld.com/article/3228113/whats-new-in-the-react-16-javascript-ui-library.html

你可能感兴趣的:(react,javascript,ui)