ネイティブDOMとの相違点
Reactはパフォーマンスとクロスブラウザの互換性のために、ブラウザから独立したイベントとDOMシステムを実装しています。 我々はここで、ブラウザの幾つかの荒くてエッジの効いたDOM実装をクリーンアップする機会を得ています。
-
全てのDOMプロパティと属性(イベントハンドラを含む)は、
JavaScriptの標準スタイルに統一されるためにキャメルケース化される必要があります。
我々はここで統一されていない仕様を故意に破棄しています。
ただし、
data-*
属性とaria-*
属性は、 仕様に従い小文字(lower-cased)のみにするべきです。 -
style
属性は、CSS文字列では無くキャメルケース化されたプロパティを持つJavaScriptオブジェクトを受け付けます。 これはDOMのstyle
のJavaScriptプロパティと一致し、より効率的でXSSセキュリティ・ホールを防ぐ役割も果たします。 - 全てのイベントオブジェクトはW3C仕様に従い、全てのイベント(submitを含む)はそれぞれW3C仕様に従った正しい伝搬をします。 詳細については、イベントシステムを参照して下さい。
-
onChange
イベントは期待どおりに振る舞います。 フォームのフィールドが変更されれば、一貫性の無いblurでは無く、このイベントが発火されます。(翻訳に自信なし)onChange
はその振る舞いに対して誤った呼称であり、 Reactはリアルタイムでユーザーの入力に反応するのにこのイベントに依存するため、 我々は既存のブラウザの挙動から故意にこれを破棄しています。(翻訳に自信なし) 詳細については、フォームを参照して下さい。 -
textarea
だけでなく、value
やchecked
の属性を持つフォームのinputがネイティブのものと異なる部分があります。(翻訳に自信なし) 詳細についてはフォームを確認して下さい。