事件處理程序通過(guò) 合成事件
(SyntheticEvent
)的實(shí)例傳遞,SyntheticEvent
是瀏覽器原生事件跨瀏覽器的封裝。SyntheticEvent
和瀏覽器原生事件一樣有 stopPropagation()
、preventDefault()
接口,而且這些接口夸瀏覽器兼容。
如果出于某些原因想使用瀏覽器原生事件,可以使用 nativeEvent
屬性獲取。每個(gè)和成事件(SyntheticEvent
)對(duì)象都有以下屬性:
boolean bubbles
boolean cancelable
DOMEventTarget currentTarget
boolean defaultPrevented
Number eventPhase
boolean isTrusted
DOMEvent nativeEvent
void preventDefault()
void stopPropagation()
DOMEventTarget target
Date timeStamp
String type
注意:
React v0.12 中,事件處理程序返回
false
不再停止事件傳播,取而代之,應(yīng)該根據(jù)需要手動(dòng)觸發(fā)e.stopPropagation()
或e.preventDefault()
。
React 將事件統(tǒng)一化,使事件在不同瀏覽器上有一致的屬性。
下面的事件處理程序在事件冒泡階段被觸發(fā)。如果要注冊(cè)事件捕獲處理程序,應(yīng)該使用 Capture
事件,例如使用 onClickCapture
處理點(diǎn)擊事件的捕獲階段,而不是 onClick
。
事件名稱:
onCopy onCut onPaste
屬性:
DOMDataTransfer clipboardData
事件名稱:
onKeyDown onKeyPress onKeyUp
屬性:
boolean altKey
Number charCode
boolean ctrlKey
function getModifierState(key)
String key
Number keyCode
String locale
Number location
boolean metaKey
boolean repeat
boolean shiftKey
Number which
事件名稱
onFocus onBlur
屬性:
DOMEventTarget relatedTarget
事件名稱:
onChange onInput onSubmit
關(guān)于 onChange
事件的更多信息,參見(jiàn) 表單組件 。
事件名稱:
onClick onContextMenu onDoubleClick onDrag onDragEnd onDragEnter onDragExit
onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave
onMouseMove onMouseOut onMouseOver onMouseUp
屬性:
boolean altKey
Number button
Number buttons
Number clientX
Number clientY
boolean ctrlKey
function getModifierState(key)
boolean metaKey
Number pageX
Number pageY
DOMEventTarget relatedTarget
Number screenX
Number screenY
boolean shiftKey
事件名稱:
onTouchCancel onTouchEnd onTouchMove onTouchStart
屬性:
boolean altKey
DOMTouchList changedTouches
boolean ctrlKey
function getModifierState(key)
boolean metaKey
boolean shiftKey
DOMTouchList targetTouches
DOMTouchList touches
事件名稱:
onScroll
屬性:
Number detail
DOMAbstractView view
事件名稱:
onWheel
屬性:
Number deltaMode
Number deltaX
Number deltaY
Number deltaZ