React 实现了一个浏览器无关的 事件和DOM 系统,原因是为了性能和跨浏览器的兼容性.我们利用这个机会来清理了一些浏览器DOM实现的一些粗糙边缘.
data-* 和 aria-* attributes conform to the specs 应该只 lower-cased.style attribute 接受 camelCased properties 的JavaScript对象 而不是一个CSS字符串. 这保持了和 DOM style JavaScript property 的一致,更有效率,而且阻止了XSS安全漏洞.class 和 for 是 JavaScript的保留字,内建DOM nodes的JSX元素 应该分别使用 attribute名className 和 htmlFor ,(比如 <div className="foo" />).自定义元素应该直接使用 class 和 for (例如. <my-tag class="foo" /> ).onChange 事件表现的像你期望的那样:不论何时一个表单域改变了这个事件就会激发,而不是模糊的不一致.我们故意打破了已有浏览器的行为,因为 onChange 对于他的行为来说用词不当,并且React依赖于这个事件来实时响应用户的输入.详见Forms.value 和 checked,就像textarea一样More here.