週末に、最初の(できれば最後の)プレリリース版React v0.13をリリースしました!
近々行われる変更についてはすでに少し話しました。 主なものは、もちろんES6クラスのサポートです。 詳細については
、ベータ版発表をご覧ください。 このイベントに非常に興奮しています! セバスチャンは今朝
、ReactElementのいくつかの変更についても書い
ています 。 私たちが取り組んでいる変更が生産性と開発経験を改善することを願っています。
プレリリースはダウンロード可能です:
また、npmで
reactと
react-toolsの
0.13.0-rc1バージョンを公開し、
0.13.0-rc1で
reactします。
変更点
カーネル反応
重大な変更
- アイテムが作成された後に
propsを変更することは非推奨です。 開発モードでは、警告が表示されます。 Reactの将来のバージョンには、 propsが定数であると仮定して、最適化が含まれます。 - 静的メソッド(
statics定義)は、コンポーネントに自動的にバインドされなくなりました。 ref定義される順序が少し変更され、 componentDidMountメソッドを呼び出した直後にコンポーネント参照が利用できるようになりました。 コンポーネントがcomponentDidMount内の親コールバックを呼び出す場合、この変更は顕著になります。これはアンチパターンであり、これは何であれ回避する必要があります。setState呼び出した後の変更setState 、常にバッチモードで適用されるようになりました。つまり、非同期になります。 以前は、コンポーネントの最初の接続(マウント)での最初の呼び出しは同期でした。- 切断された(マウントされていない)コンポーネントで
setStateとforceUpdateを呼び出すと、例外ではなく警告がスローされるようになりました。 これにより、Promiseのパフォーマンスの問題を回避できます。 this._pendingStateおよびthis._rootNodeIDを含む、ほとんどの内部プロパティへのアクセスが完全に削除されthis._rootNodeID 。
新機能
時代遅れ
アドオンと反応する
時代遅れ
React.addons.classSet非推奨です。 この機能は、いくつかの自由に利用可能なモジュールに置き換えることができます。 たとえば、 classnamesはそのようなモジュールの1つです。
Reactツール
重大な変更
- ES6構文を使用する場合、デフォルトでは
classメソッドは列挙されなくなりました;これはObject.defineProperty要件です。 IE8などのブラウザーをサポートしている場合は、フラグを使用できます
--target es3 、古い動作を復元します。
新機能
- jsxコマンドの
--targetオプションを使用すると、ECMAScriptのバージョンを指定できます。
- デフォルトでは
es5 。
es3は以前のデフォルトの動作を復元します。 また、予約語の使用を安全にします。たとえば、 this.staticはIE8との互換性のためにthis['static']置き換えられます。
- スプレッド演算子の変換も含まれています。
Jsx
重大な変更
- この変更は、特に要素内で
>または}を使用したJSXの解析方法に影響します。 以前は文字列に変換されていましたが、現在は解析エラーになります。 JSXコードの潜在的な問題を見つけて修正するツールをリリースします。