React V15.0 前瞻

#1

原文地址:React V15.0

上个月社区已经放出了两个候选版本,下一个版本的React也将成为第一个正式版的React。从正式版开始,React将不再支持IE8。

关于版本号

React的版本升级策略,内心是小马奔腾的。。。详见New Versioning Scheme。从去年十月到现在,我们已经使用v0.14.x版本的React有段时间了。接下来的版本号是v15.0.0。虽然在大的版本号上有一些提升,但是升级方式和以往并没有什么区别。延续React的尿性,当你在某版本获得一些warning的时候,在下一个版本这些warning将会直接报错,无法运行。所以在升级v15.0.0之前,请确保线下没有warning,同时线上需要明确设置NODE_ENV为production环境。

变革前瞻

从v0.14.0开始,ReactDOM等核心逐渐拆分出去,React正在调整与DOM的交互方式,以方便核心React能够更好地支持多平台。本次的版本升级将集中在DOM相关的交互方式、支持全部的SVG元素以及属性方面。

在正式版出现之前,结合官方Blog总结如下:

  • 1、data-reactid这个属性将不会再出现在节点上,最直接的影响就是不太好通过节点上是否有这个属性来判断网页是否使用了react。其目的是为了使DOM更加轻量,通过document.createElement的初始化render来支持。之前采用node.innerHTML的方式设置节点,在很多案例和浏览器中被认为是比document.createElemenbt快的,但是随着浏览器的本身进步,这一点不再成立。
  • 2、不再产生多余的span。在过去会显示地出现span标签。这对于大多数逻辑不会有影响,除非你之前对于特定的span标签有一些CSS设定,这种情况你需要手动添加span来演化。
  • 3、null的实现方式翻遍。先了解一下背景,之前jsx写comments有两种情况。从v0.11开始,null其实是通过< noscript/>标签实现的,现在替换为comment nodes。这个主要影响还是CSS方面的,比如:nth-child,之前的null其实是会被计算的。
  • 4、SVG的全面支持

需要注意以下这些在v0.14中警告,在下一个版本中被完全删除的特性

参考

4 Likes