SyntheticEvent
These docs are old and won’t be updated. Go to react.dev for the new React docs.
These new documentation pages teach modern React and include live examples:
Bu arayış React-in Hadisə Sisteminin bir hissəsini yaradan SyntheticEvent-i əhatə edir. Əlavə məlumat üçün Hadisələrin Emal Edilməsi sənədinə baxın.
İcmal
Hadisə işləyiciləri React-ə SyntheticEvent-in instansiyaları kimi ötürüləcək. SyntheticEvent bütün brauzerlərdə eyni olan brauzerin nativ hadisəsini əhatə edən obyektdir. Bunun interfeysi stopPropagation() və preventDefault() daxil olmaqla brauzerin nativ hadisəsi interfeysi ilə eynidir. Brauzerlərin Hadisələrinin özünəməxsus tətbiqindən fərqli olaraq SyntecticEvent bütün brauzerlərdə eyni formada işləmir.
Əgər sizə hər hansı səbəbə görə brauzerin nativ hadisəsi lazımdırsa, nativeEvent atributundan istifadə edin. Sintetik hadisələr brauzerin nativ hadisələri ilə tam qarşılaşmırlar. Məsələn, onMouseLeave hadisəsinin event.nativeEvent obyekti mouseout hadisəsinə istinad edir. Hər bir SyntheticEvent obyektinin aşağıda göstərilən atributları var:
boolean bubbles
boolean cancelable
DOMEventTarget currentTarget
boolean defaultPrevented
number eventPhase
boolean isTrusted
DOMEvent nativeEvent
void preventDefault()
boolean isDefaultPrevented()
void stopPropagation()
boolean isPropagationStopped()
void persist()
DOMEventTarget target
number timeStamp
string typeQeyd:
v17-dən başlayaraq
SyntheticEventhadisə pulinqi etmədiyindəne.persist()funksiyası heç nə etmir.
Qeyd:
v0.14-cü versiyadan başlayaraq, hadisə işləyicilərindən
falseqaytardıqda hadisə yayılması dayandırılmayacaq. Bunun əvəzinəe.stopPropagation()və yae.preventDefault()çağrılmalıdır.
Dəstəklənən Hadisələr
Bütün brauzerlərdə eyni parametrlərinin olması üçün, React hadisələri normallaşdırır.
Hadisə işləyiciləri hadisə tərəfindən bubbling fazasında çağrılır. Hadisə işləyicisini Capture fazasında qeyd etmək üçün hadisə adının sonuna Capture mətnini əlavə edin. Məsələn, Capture fazasında tıklama hadisəsini qeyd etmək üçün onClick əvəzinə onClickCapture işlətməlisiniz.
- Clipboard Hadisələri
- Kompozisiya Hadisələri
- Klaviatur Hadisələri
- Fokus Hadisələri
- Anket Hadisələri
- Ümumi Hadisələr
- Maus Hadisələri
- Pointer Hadisələri
- Seleksiya Hadisələri
- Toxunuş Hadisələri
- UI Hadisələri
- Wheel Hadisələri
- Media Hadisələri
- Şəkil Hadisələri
- Animasiya Hadisələri
- Keçid Hadisələri
- Digər Hadisələr
Arayış
Clipboard Hadisələri
Hadisə adları:
onCopy onCut onPasteParametrlər:
DOMDataTransfer clipboardDataKompozisiya Hadisələri
Hadisə adları:
onCompositionEnd onCompositionStart onCompositionUpdateParametrlər:
string dataKlaviatur Hadisələri
Hadisə adları:
onKeyDown onKeyPress onKeyUpParametrlər:
boolean altKey
number charCode
boolean ctrlKey
boolean getModifierState(key)
string key
number keyCode
string locale
number location
boolean metaKey
boolean repeat
boolean shiftKey
number whichkey parametri DOM-un 3-cü səviyyəli Hadisələr spesifikasiyasında olan bütün dəyərləri qəbul edə bilər.
Fokus Hadisələri
Hadisə adları:
onFocus onBlurFokus hadisələri yalnız anketlərdə yox, React DOM-da olan bütün elementlərdə də işləyirlər.
Parametrlər:
DOMEventTarget relatedTargetonFocus
The onFocus event is called when the element (or some element inside of it) receives focus. For example, it’s called when the user clicks on a text input.
function Example() {
return (
<input
onFocus={(e) => {
console.log('Focused on input');
}}
placeholder="onFocus is triggered when you click this input."
/>
)
}onBlur
The onBlur event handler is called when focus has left the element (or left some element inside of it). For example, it’s called when the user clicks outside of a focused text input.
function Example() {
return (
<input
onBlur={(e) => {
console.log('Triggered because this input lost focus');
}}
placeholder="onBlur is triggered when you click this input and then you click outside of it."
/>
)
}Detecting Focus Entering and Leaving
You can use the currentTarget and relatedTarget to differentiate if the focusing or blurring events originated from outside of the parent element. Here is a demo you can copy and paste that shows how to detect focusing a child, focusing the element itself, and focus entering or leaving the whole subtree.
function Example() {
return (
<div
tabIndex={1}
onFocus={(e) => {
if (e.currentTarget === e.target) {
console.log('focused self');
} else {
console.log('focused child', e.target);
}
if (!e.currentTarget.contains(e.relatedTarget)) {
// Not triggered when swapping focus between children
console.log('focus entered self');
}
}}
onBlur={(e) => {
if (e.currentTarget === e.target) {
console.log('unfocused self');
} else {
console.log('unfocused child', e.target);
}
if (!e.currentTarget.contains(e.relatedTarget)) {
// Not triggered when swapping focus between children
console.log('focus left self');
}
}}
>
<input id="1" />
<input id="2" />
</div>
);
}Anket Hadisələri
Hadisə adları:
onChange onInput onInvalid onReset onSubmit onChange hadisəsi haqqında əlavə məlumat üçün Anketlər sənədinə baxın.
Ümumi Hadisələr
Hadisə adları names:
onError onLoadMaus Hadisələri
Hadisə adları:
onClick onContextMenu onDoubleClick onDrag onDragEnd onDragEnter onDragExit
onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave
onMouseMove onMouseOut onMouseOver onMouseUponMouseEnter və onMouseLeave hadisələri siravi bubbling əvəzinə çıxan elementdən daxil olan elementə yayılırlar. Əlavə olaraq bu hadisələrin capture fazası yoxdur.
Parametrlər:
boolean altKey
number button
number buttons
number clientX
number clientY
boolean ctrlKey
boolean getModifierState(key)
boolean metaKey
number pageX
number pageY
DOMEventTarget relatedTarget
number screenX
number screenY
boolean shiftKeyPointer Hadisələri
Hadisə adları:
onPointerDown onPointerMove onPointerUp onPointerCancel onGotPointerCapture
onLostPointerCapture onPointerEnter onPointerLeave onPointerOver onPointerOutonPointerEnter və onPointerLeave hadisələri siravi bubbling əvəzinə çıxan elementdən daxil olan elementə yayılırlar. Əlavə olaraq bu hadisələrin capture fazası yoxdur.
Parametrlər:
W3 spesifikasiyasında müəyyənləşdirildiyi kimi, pointer hadisələri Maus Hadisələrini aşağıdakı parametrlər ilə genişləndirirlər:
number pointerId
number width
number height
number pressure
number tangentialPressure
number tiltX
number tiltY
number twist
string pointerType
boolean isPrimaryBrauzer dəstəyi haqqında qeyd:
Pointer hadisələri bütün brauzerlər tərəfindən dəstəklənmirlər (bu sənədin yazıldığı zamanda yalnız Chrome, Firefox, Edge, və Internet Explorer bu hadisələri dəstəkləyir). React bilərəkdən digər brauzerlər üçün polifil dəstəkləmir. Bunun səbəni polifilin react-dom paketini ölçüsünü çox böyütməsidir.
Əgər sizin applikasiyanıza pointer hadisələri lazımdırsa biz 3-cü tərəfli pointer hadisəsi polifili işlətməyi tövsiyə edirik.
Seleksiya Hadisələri
Hadisə adları:
onSelectToxunuş Hadisələri
Hadisə adları:
onTouchCancel onTouchEnd onTouchMove onTouchStartParametrlər:
boolean altKey
DOMTouchList changedTouches
boolean ctrlKey
boolean getModifierState(key)
boolean metaKey
boolean shiftKey
DOMTouchList targetTouches
DOMTouchList touchesUI Hadisələri
Hadisə adları:
onScrollQeyd
React 17-dən başlayaraq
onScrollhadisəsi React-də bubble etməyəcək. Bu, brauzerin davranışına uyğundur və iç-içə skroll olunan elementlərin uzaq valideynə hadisə göndərməsi qarışıqlığı aradan qaldırır.
Parametrlər:
number detail
DOMAbstractView viewWheel Hadisələri
Hadisə adları:
onWheelParametrlər:
number deltaMode
number deltaX
number deltaY
number deltaZMedia Hadisələri
Hadisə adları:
onAbort onCanPlay onCanPlayThrough onDurationChange onEmptied onEncrypted
onEnded onError onLoadedData onLoadedMetadata onLoadStart onPause onPlay
onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend
onTimeUpdate onVolumeChange onWaitingŞəkil Hadisələri
Hadisə adları:
onLoad onErrorAnimasiya Hadisələri
Hadisə adları:
onAnimationStart onAnimationEnd onAnimationIterationParametrlər:
string animationName
string pseudoElement
float elapsedTimeKeçid Hadisələri
Hadisə adları:
onTransitionEndParametrlər:
string propertyName
string pseudoElement
float elapsedTimeDigər Hadisələr
Hadisə adları:
onToggle