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<MyProps, any> { }
以这种方式声明类,TypeScript 开发人员就可以自动获得恰当的类型检查。已经没有必要使用propTypes
了。
版本 15.5 还是 React addons 的最新版本。其中有一部分已经被纳入到其他程序包,同时,createFragment
已经成为版本 16 的一部分,为内置 Fragments 提供支持。
评论