React15至今的重要变化人肉梳理

这篇博客梳理了React从15版本到16版本的重要变化,包括:移除data-reactid,完善SVG支持,函数式组件返回null,React.PropTypes和React.createClass的拆分,Error Boundaries的引入,以及Fiber、Hooks等新特性的添加。同时提到了社区的贡献,如create-react-app和React Perf的改进。
摘要由CSDN通过智能技术生成

2016-04-07

  • 当在挂载组件时使用document.createElement而不是innerHTML,这样我们就摆脱了data-reactid。并且document.createElement在现代浏览器中也更快;
    • 值得注意: data-reactid在client端已经去除了,但依旧存在在服务端渲染中,不过更小更简 单是简单递增的。
  • 由于历史原因对SVG的不完整支持,在React 15中支持了所有被现代浏览器所支持的SVG属性;
  • 社区(Michael Wiencek)的贡献使得React 15不再需要多余的对text进行包裹;
  • 渲染Null现在使用comment nodes(注释节点)了;
  • 函数式组件现在也能返回null了;
  • 移除和弃用
    • 移除包括:findDOMNoderenderrenderToSringrenderToStaticMarkupunmountComponentAtNode几个顶级API,不过他们都能在ReactDomReactDomServer中找到;
    • 移除的插件:cloneWithPropsbatchedUpdates
    • 移除的组件实例方法:setPropsreplacePropsgetDOMNode
  • 将在React 16移除:
    • LinkStateMixinvalueLink
    • 在未来的版本中React会对<input value={null}>理解为清除input而不是在React 0.14中忽略了value={null}。不过React 15会对此作出warning,所以最好用空字符串或者undefined来做同样的事
    • ReactPerf.printDOM()被更名为ReactPerf.printOperations(),同样ReactPerf.getMeasurementsSummaryMap()更名为ReactPerf.getWasted()

2016-04-08

  • 移除React.__spread发生了问题,又放回来了,给予提示并将在以后移除(主要由于TypeScript和coffee-script都有使用),并推荐我们使用Object.assign来代替
  • 修复了关于受控输入的光标位置的bug

2016-07-11

  • 15.2.0的版本中,将error message从构建中剥离了出来,这样我们会在开发环境中看到一些错误信息并指向一个网址。(更详细的信息

2016-07-13

不再建议使用Mixin,并针对几个case提出了解决方案,大致如下:

  • 性能优化:React.PureComponent
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值