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

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

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

獨立React.PropTypes

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

// 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

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

  • React.createClass
  • JavaScript Function
  • ES6 Class

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

當然,如果使用ES6 Class來聲明組件的話,之前的mixins就無法使用了,所以React還為createClass方法準備了一個獨立的包 create-react-class

// 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會被徹底移除。

不過同學們也不同擔心,這次改動之後,將可以「無痛直升」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查閱。

你也可以通過下面的命令提前體驗react 16.0.0版本

npm install react@16.0.0-alpha.8

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

歡迎在評論區參與討論。

推薦閱讀:

React Conf 2017 不能錯過的大起底——Day 1!
解析 Redux 源碼
我對Flexbox布局模式的理解
從0到1,細說 React 開發環境搭建那點事
Immutable 詳解及 React 中實踐

TAG:React | 前端框架 | 前端开发 |