React 16
一.特性 fragment 模版支持fragment和string类型,对应ReactElement数组和字符串 v16.2.0还提供了JSX的fragment支持:<></> error boundary 组件级错误处理,支持捕获子组件树内部异常,UI层的兜底方案 portal 允许组件树与DOM树结构不一致,用于hovercards,tooltips等场景 例如tooltip在DOM结构上target与tip一般是兄弟关系(布局需要),而逻辑上tip是属于target的,是父子关系,portals特性用来处理这种场景 特殊的,事件冒泡经过处理,portals组件的父组件仍然能接到冒泡通知(React 16之前就内置了用来抹平DOM事件冒泡差异的事件系统,这里顺便支持拐弯冒泡 示例) support for custom DOM attributes 之前内置了HTML/SVG属性名白名单,自定义属性会被拦截并忽略掉,React 16去掉了这个限制 去掉该限制有2个原因,其一,这层内置的属性过滤对于非标准的(比如proposal阶段的)新属性和其它库/框架(比如Angular、Polymer)很不友好;其二,bundle里要内置一份体积不小的属性白名单,维护起来还挺麻烦 improved server-side rendering 号称比React 15快3倍