週末に、最初の(できれば最後の)プレリリース版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コードの潜在的な問題を見つけて修正するツールをリリースします。