近々行われる変更についてはすでに少し話しました。 主なものは、もちろんES6クラスのサポートです。 詳細については、ベータ版発表をご覧ください。 このイベントに非常に興奮しています! セバスチャンは今朝、ReactElementのいくつかの変更についても書いています 。 私たちが取り組んでいる変更が生産性と開発経験を改善することを願っています。
プレリリースはダウンロード可能です:
- 反応する
開発バージョン(警告あり): http : //fb.me/react-0.13.0-rc1.js
本番用の縮小バージョン: http : //fb.me/react-0.13.0-rc1.min.js
- エクストラと反応する
開発バージョン(警告あり)s: http : //fb.me/react-with-addons-0.13.0-rc1.js
本番用の縮小バージョン: http : //fb.me/react-with-addons-0.13.0-rc1.min.js
- ブラウザ用のJSXコンパイラ
http://fb.me/JSXTransformer-0.13.0-rc1.js
また、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コンポーネントを作成するためのES6クラスのサポート。 詳細
- 新しい
React.findDOMNode(component)
APIがReact.findDOMNode(component)
さReact.findDOMNode(component)
代わりに使用する必要がありcomponent.getDOMNode()
。 ES6クラスに基づくコンポーネントの基本クラスには、getDOMNode
メソッドがありません。 -
ref
の新しいスタイルにより、名前の代わりにコールバックを使用できます。<Photo ref={(c) => this._photo = c} />
this._photo
使用してコンポーネントを参照できます(this.refs.photo
が提供するref="photo"
代わりに) -
this.setState()
の最初の引数は、トランザクションの状態を更新するための関数です。たとえば、this.setState((state, props) => ({count: state.count + 1}));
this._pendingState
を使用する必要がないことを意味します。 -
this.props.children
でのイテレーターとimmutable-jsシーケンスのthis.props.children
。
時代遅れ
-
ComponentClass.type
非推奨です。 通常は次のように、単にComponentClass
使用しComponentClass
。
element.type === ComponentClass
-
createClass
を使用して作成されたコンポーネントで使用可能な一部のメソッドは削除されているか、ES6クラスのために推奨されていません。setProps
、replaceState
、setProps
、replaceState
。
アドオンと反応する
時代遅れ
-
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コードの潜在的な問題を見つけて修正するツールをリリースします。