Facebook發布了React 15.5,給開發人員足夠的時間來調整和適應版本16的重大變化。
Andrew Clark在一篇博文中公布了將在主程序包中棄用React.PropTypes和React.createClass兩個特性。為了準備版本16,同時作為一種改善未來代碼規模的方法,他們已經將這兩個特性移到了它們自己的程序包中。
目前,如果開發人員在主程序包中使用了其中的任何一項特性,控制臺就會給出警告信息。如果開發人員現在不修復它,那么在版本16中代碼就會遭到破壞。
在React最初發布時,JavaScript沒有提供一種地道的創建類的方法,因此,我們提供了一個:React.createClass
后來,類作為ES2015的一部分添加到該語言,我們也就添加了使用JavaScript類創建React組件的能力。和功能組件一起,JavaScript類現在成為創建React組件的首選方式。
如果不選擇使用JavaScript類對應用進行重新編碼,那么開發人員還可以選擇NPM上提供的create-react-class模塊。這仍然需要修改代碼,但可以避免使用JavaScript類。
對于大多數開發人員而言,刪除propTypes應該不會成為太大的損失。那些使用TypeScript編寫React的開發人員,或者是那些在工具鏈中集成了Flow的開發人員,有更好的React項目類型檢查方式。例如,TypeScript開發人員可以使用強類型定義props:
interface MyProps { firstName: string, lastName: string }export default class MyComponent extends React.Component以這種方式聲明類,TypeScript開發人員就可以自動獲得恰當的類型檢查。已經沒有必要使用propTypes了。
版本15.5還是React addons的最新版本。其中有一部分已經被納入到其他程序包,同時,createFragment已經成為版本16的一部分,為內置Fragments提供支持。
查看英文原文:React 15.5 Prepares Developers For Big Changes