React v15.5.0更新說明 & v16.0.0更新預告

React今日發佈了15.5.0版本,同時這也將是以15開頭的最後一個版本,下一次發佈,咱們將迎來React 16.0.0html

在15.5.0這一版本中,主要有如下兩處改動:react

獨立React.PropTypes

在以前的版本之中,咱們能夠經過React.PropTypes這個API訪問React內置的一些類型來檢查props,在15.5.0版本中,這一API被獨立成了一個新的包 prop-typesgit

// 15.4 之前 import React from 'react'; class Component extends React.Component { render() { return <div>{this.props.text}</div>; } } Component.propTypes = { text: React.PropTypes.string.isRequired, } // 15.5 之後 import React from 'react'; import PropTypes from 'prop-types'; class Component extends React.Component { render() { return <div>{this.props.text}</div>; } } Component.propTypes = { text: PropTypes.string.isRequired, }; 

即將廢棄React.createClass

目前的版本中咱們一共有三種聲明組件的方式:github

  • React.createClass
  • JavaScript Function
  • ES6 Class

由於以前JS當中並無類的概念,因此React在內部實現了一個createClass的方法,但如今ES6已經十分普及,對Class的支持已經比較完善,因此在以後的版本中,React會廢棄createClass這一方法。算法

固然,若是使用ES6 Class來聲明組件的話,以前的mixins就沒法使用了,因此React還爲createClass方法準備了一個獨立的包 create-react-classnpm

// 15.4 之前 var React = require('react'); var Component = React.createClass({ mixins: [MixinA], render() { return <Child />; } }); // 15.5 之後 var React = require('react'); var createReactClass = require('create-react-class'); var Component = createReactClass({ mixins: [MixinA], render() { return <Child />; } }); 

以上是兩項最主要的改變,也是最影響咱們已有代碼庫的改動。你仍然能夠在15.5.0版本中使用這兩個API,可是在控制檯會看到輸出的廢棄警告,而且在接下來的16.0.0版本中,這兩個API會被完全移除。bash

不過同窗們也不一樣擔憂,此次改動以後,將能夠「無痛直升」16.0.0版本。架構

另外還有一些有關測試和附件的改動就再也不贅述,想要了解的同窗能夠去閱讀React今天發佈的博客React v15.5.0測試

React 16

  • ReactDOM將會正式啓用Fiber算法,不過API並不會改變,因此使用體驗,你可能只會感受到React更快,渲染更流暢了。關於Fiber的詳細介紹,能夠看這一篇討論如何理解 React Fiber 架構?
  • React.createClass/PropTypes/React.createFactory/React.DOM.* 幾個方法將會被移除分離到單獨的包中。

其他的改動和開發計劃能夠在React 15.5 and 16 Umbrella · Issue #8854 · facebook/react查閱。ui

你也能夠經過下面的命令提早體驗react 16.0.0版本

npm install react@16.0.0-alpha.8

React 16 正式版本有望在今夏發佈:

相關文章
相關標籤/搜索