FacebookがReact 15.5をリリースした。バージョン16の大きな変化に対応するための時間的余裕を開発者に提供することが目的だ。
リリースのブログ記事ではAndew Clark氏が、React.PropTypes
とReact.createClass
の2機能をメインパッケージから廃止する予定であることを明らかにしている。バージョン16への移行に備えるため、将来的なコードサイズ改善の方法として、独自のパッケージに移行されることになったのだ。
この2機能をメインパッケージから使用すると、現在はコンソールに警告が表示されるようになっている。現時点で修正を行なわない場合、バージョン16では動作しないことになる。
Reactが最初にリリースされた当時は、JavaScriptのクラスを生成する慣習的な方法がありませんでした。そのため、独自の方法として
React.createClass
を提供したのです。その後ES2015において言語仕様の一部としてクラスが加えられたため、JavaScriptクラスを使用したRactコンポーネントの生成を可能にしました。機能コンポーネントと同様に、現在ではJavaScriptクラスを使用したコンポーネント生成は、Reactとして望ましい方法になっています。
JavaScriptクラスを使用するようにアプリを再コーディングすることができない場合には、NPMで使用可能なcreate-react-classモジュールに切り換えるという方法もある。この場合でもコード変更は必要だが、JavaScriptクラスの使用は回避できる。
propTypes
の廃止は、ほとんどの開発者にとって、あまり大きな損失にはならないはずだ。TypeScriptでReactをコーディングしたり、あるいはツールチェーンにFlowを組み込むのであれば、Reactプロジェクトをタイプチェックするもっとよい方法がある。例えばTypeScriptの開発者ならば、prop
強い型付けで定義することができる。
interface MyProps { firstName: string, lastName: string }
export default class MyComponent extends React.Component<MyProps, any> {
}
このようにクラスを宣言することで、TypeScript開発者は適切な型チェックを自動的に利用することが可能になる。propTypes
の使用はすでに冗長なものになっているのだ。
バージョン15.5はまた、Reactアドオンの最後のリリースでもある。その中のいくつかは他のパッケージにプッシュされているが、フラグメントがビルトインでサポートされるバージョン16にはcreateFragment
は組み込まれない。
この記事を評価
- 編集者評
- 編集長アクション