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.