O Facebook lançou o React 15.5 para dar aos desenvolvedores tempo adequado para se adaptar a uma grande mudança na versão 16.
Andrew Clark, em uma postagem no blog apresentou a notícia de que duas funcionalidades, React.PropTypes e React.createClass serão depreciadas no pacote principal. Como preparação para a versão 16, foram movidas para seus próprios pacotes como uma forma de melhorar o tamanho do código daqui para frente.
A partir de agora, os desenvolvedores verão um aviso no console se usarem algumas dessas funcionalidades do pacote principal. Se o desenvolvedor não corrigir isso agora, o código irá parar de funcionar na versão 16.
Quando o React foi inicialmente lançado, não havia maneira idiomática de criar classes no JavaScript, então fornecemos a nossa: React.createClass.
Com o passar do tempo, as classes foram adicionadas à linguagem como parte do ES2015, então adicionamos a possibilidade de criar componentes React usando classes JavaScript. Junto com os componentes funcionais, as classes JavaScript são agora a forma preferida de criar componentes no React.
Se reescrever uma app para usar classes JavaScript não for uma opção, os desenvolvedores também poderão escolher mudar para o módulo create-react-class disponível no NPM. Ainda assim será necessário mudar o código, mas evita o uso de classes JavaScript.
A remoção de propTypes não deve ser uma perda muito grande para a maioria dos desenvolvedores. Aqueles que codificam React em TypeScript ou que incorporam Flow em sua cadeia de ferramentas tiveram melhores formas de checagem de tipo. Por exemplo, um desenvolvedor TypeScript pode definir seus props com tipo forte:
interface MyProps { firstName: string, lastName: string } export default class MyComponent extends React.Component<MyProps, any> { }
Declarar uma classe dessa maneira automaticamente daria a um desenvolvedor TypeScript checagem de tipo adequada. O uso do propTypes já seria redundante.
A versão 15.5 é também a última versão dos addons React. Enquanto alguns deles foram colocados em outros pacotes, createFragment foi incorporado na versão 16 que tem suporte à fragmentos.