Ortak bileşenler (örn. <div>)
<div>
gibi tüm yerleşik tarayıcı bileşenleri bazı ortak prop’ları ve olayları destekler.
- Referans
- Ortak bileşenler (örn.
<div>
) ref
callback fonksiyonu- React olay nesnesi
AnimationEvent
yönetici fonksiyonuClipboardEvent
yönetici fonksiyonuCompositionEvent
yönetici fonksiyonuDragEvent
yönetici fonksiyonuFocusEvent
yönetici fonksiyonuEvent
yönetici fonksiyonuInputEvent
yönetici fonksiyonuKeyboardEvent
yönetici fonksiyonuMouseEvent
yönetici fonksiyonuPointerEvent
yönetici fonksiyonuTouchEvent
yönetici fonksiyonuTransitionEvent
yönetici fonksiyonuUIEvent
yönetici fonksiyonuWheelEvent
yönetici fonksiyonu
- Ortak bileşenler (örn.
- Kullanım
Referans
Ortak bileşenler (örn. <div>
)
<div className="wrapper">Herhangi bir içerik</div>
Aşağıda daha fazla örnek bulabilirsiniz.
Prop’lar
Şu özel React prop’ları tüm yerleşik bileşenlerde desteklenir:
-
children
: Bir React düğümü (bir eleman, bir string, bir sayı, bir portal,null
,undefined
ve boolean’lar gibi boş bir düğüm, veya diğer React düğümlerinden bir dizi). Bileşenin içeriğini belirtir. JSX kullandığınızda,children
prop’unu genellikle etiketleri iç içe<div><span /></div>
gibi yerleştirerek üstü kapalı olarak belirteceksiniz. -
dangerouslySetInnerHTML
: İçinde saf bir HTML string’i bulunan{ __html: '<p>herhangi bir html</p>' }
biçiminde bir nesne. DOM düğümününinnerHTML
özelliğini geçersiz kılar ve içeriye verilen HTML’i gösterir. Bunu kullanırken son derece dikkatli olmalısınız! Eğer içteki HTML güvenilir değilse (mesela kullanıcı verisine dayanan bir şeyse), bir XSS riski ortaya çıkarırsınız.dangerouslySetInnerHTML
kullanımıyla ilgili daha fazlasını okuyun. -
ref
:useRef
veyacreateRef
’ten bir ref nesnesi, veyaref
callback fonksiyonu, veya eski sürüm ref’leri için bir string. Bu düğümde ref’iniz DOM elemanıyla doldurulacaktır. DOM’u ref’lerle manipüle etmeyle ilgili daha fazlasını okuyun. -
suppressContentEditableWarning
: Bir boolean. Eğertrue
ise, hemchildren
hem decontentEditable={true}
prop’larına sahip olan elemanlarda (ki bunlar normalde birlikte çalışmazlar) React’ın gösterdiği uyarıları baskılar. Bunu,contentEditable
içeriğini manuel olarak yöneten bir metin girdisi kütüphanesi geliştiriyorsanız kullanın. -
suppressHydrationWarning
: Bir boolean. Eğer sunucu taraflı render’lama kullanıyorsanız, sunucu ve istemci farklı içerikleri render ettiğinde normalde bir uyarı görürsünüz. Bazı ender durumlarda (zaman damgası gibi) ise birebir eşleşmeyi sağlamak çok zor veya imkansızdır. EğersuppressHydrationWarning
’itrue
olarak ayarlarsanız, React o elemanın içeriği ve niteliklerindeki yanlış eşleşmelerle ilgili bir uyarı vermeyecektir. Yalnızca bir kademe derinde çalışır ve bir kaçış yolu olarak kullanılması amaçlanmıştır. Gereğinden fazla kullanmayınız. Hydration hatalarını baskılamayla ilgili daha fazlasını okuyun. -
style
: CSS biçimlerini taşıyan bir nesne, örneğin{ fontWeight: 'bold', margin: 20 }
. DOM’unstyle
özelliğine benzer olarak, CSS özellik isimlericamelCase
olarak yazılmalıdır, örneğinfont-weight
yerinefontWeight
. Değerleri string veya sayı olarak verebilirsiniz.width: 100
şeklinde bir sayı verdiğinizde, eğer birimsiz özellik değilse, React bu sayıya otomatik olarakpx
(“piksel”)‘i ekler.style
’ı yalnızca, biçim değerlerini önceden bilmediğiniz dinamik biçimler için kullanmanızı tavsiye ediyoruz. Diğer durumlarda iseclassName
ile düz CSS sınıfları uygulamak daha verimli.className
andstyle
ile ilgili daha fazlasını okuyun.
Şu standart DOM prop’ları da tüm yerleşik bileşenlerde desteklenir:
accessKey
: Bir string. Eleman için bir klavye kısayolu belirtir. Genellikle tavsiye edilmez.aria-*
: ARIA nitelikleri, bu elemanın erişilebilirlik ağacı bilgisini belirlemenize olanak sağlar. Eksiksiz bir referans için ARIA niteliklerine bakınız. React’taki tüm ARIA nitelik isimleri HTML’dekilerle birebir aynıdır.autoCapitalize
: Bir string. Kullanıcı girdisinin büyük harfe dönüştürülüp dönüştürülmeyeceğini, eğer dönüştürülecekse nasıl dönüştürüleceğini belirtir.className
: Bir string. Elemanın CSS sınıf ismini belirtir. CSS biçimlerini uygulamayla ilgili daha fazlasını okuyun.contentEditable
: Bir boolean. Eğertrue
ise tarayıcı, kullanıcının render edilmiş elemanı direkt olarak düzenlemesine olanak sağlar. Lexical gibi zengin metin girdisi kütüphanelerini uygulamak için kullanılabilir. EğercontentEditable={true}
prop’una sahip bir elemana React alt elemanları vermeye çalışırsanız React sizi uyarır, çünkü React kullanıcı düzenleme yaptıktan sonra içeriğini güncelleyemeyecektir.data-*
: Data nitelikleri, elemana herhangi bir string verisi bağlamanıza olanak sağlar, örneğindata-meyve="armut"
. Bunlar React’ta yaygın şekilde kullanılmazlar çünkü veriler daha çok prop’lardan veya state’ten okunur.dir
:'ltr'
veya'rtl'
. Elemanın metin yönü belirtir.draggable
: Bir boolean. Elemanın sürüklenebilir olup olmadığını belirtir. HTML Sürükle ve Bırak API’sinin bir parçasıdır.enterKeyHint
: Bir string. Sanal klavyelerde enter tuşu için hangi aksiyonun gösterilmesi gerektiğini belirtir.htmlFor
: Bir string.<label>
ve<output>
kullanırken etiket üzerinde bazı kontrollere sahip olmanıza olanak sağlar. HTMLfor
niteliğiyle aynı. React, HTML nitelik isimleri yerine standart DOM özellik isimlerini (htmlFor
) kullanır.hidden
: Bir boolean veya bir string. Elemanın gizli olup olmaması gerektiğini belirtir.id
: Bir string. Elemanı daha sonra bulmaya veya elemanı başka elemanlarla bağlamaya yarayan bir benzersiz tanımlayıcı belirtir. Aynı bileşenin birden fazla nesnelerinin çakışmasını önlemek içinuseId
ile oluşturun.is
: Bir string. Eğer belirtilmişse, bileşen bir özel eleman gibi davranacaktır.inputMode
: Bir string. Ne tür bir klavye görüntüleneceğini belirtir (örneğin metin, sayı veya telefon).itemProp
: Bir string. Elemanın, web arama robotları için hangi özelliği temsil ettiğini belirtir.lang
: Bir string. Elemanın dilini belirtir.onAnimationEnd
: BirAnimationEvent
yönetici fonksiyonu. Bir CSS animasyonu tamamlandığında çalışır.onAnimationEndCapture
:onAnimationEnd
’in yakalama aşamasında çalışan versiyonu.onAnimationIteration
: BirAnimationEvent
yönetici fonksiyonu. Bir CSS animasyonu iterasyonu bitip, bir diğeri başladığında çalışır.onAnimationIterationCapture
:onAnimationIteration
’ın yakalama aşamasında çalışan versiyonu.onAnimationStart
: BirAnimationEvent
yönetici fonksiyonu. Bir CSS animasyonu başladığında çalışır.onAnimationStartCapture
:onAnimationStart
’ın yakalama aşamasında çalışan versiyonu.onAuxClick
: BirMouseEvent
yönetici fonksiyonu. Birincil olmayan bir imleç tuşuna basıldığında çalışır.onAuxClickCapture
:onAuxClick
’in yakalama aşamasında çalışan versiyonu.onBeforeInput
: BirInputEvent
yönetici fonksiyonu. Düzenlenebilir bir elemanın değeri değiştirilmeden önce çalışır. React, henüz yerelbeforeinput
olayını kullanmıyor ve onun yerine, diğer olayları kullanarak polyfill yapmaya çalışıyor.onBeforeInputCapture
:onBeforeInput
’un yakalama aşamasında çalışan versiyonu.onBlur
: BirFocusEvent
yönetici fonksiyonu. Bir eleman odağı kaybedince çalışır. React’takionBlur
olayı, yerleşik tarayıcıdakiblur
olayının aksine kabarır.onBlurCapture
:onBlur
’un yakalama aşamasında çalışan versiyonu.onClick
: BirMouseEvent
yönetici fonksiyonu. İmleç cihazındaki birincil tuşa tıklanıldığında çalışır.onClickCapture
:onClick
’in yakalama aşamasında çalışan versiyonu.onCompositionStart
: BirCompositionEvent
yönetici fonksiyonu. Bir girdi metodu düzenleyicisi yeni bir birleştirme oturumu başlattığında çalışır.onCompositionStartCapture
:onCompositionStart
’ın yakalama aşamasında çalışan versiyonu.onCompositionEnd
: BirCompositionEvent
yönetici fonksiyonu. Bir girdi metodu düzenleyicisi bir birleştirme oturumunu tamamlayınca veya iptal edince çalışır.onCompositionEndCapture
:onCompositionEnd
’in yakalama aşamasında çalışan versiyonu.onCompositionUpdate
: BirCompositionEvent
yönetici fonksiyonu. Bir girdi metodu düzenleyicisi’ne yeni bir karakter girildiğinde çalışır.onCompositionUpdateCapture
:onCompositionUpdate
’in yakalama aşamasında çalışan versiyonu.onContextMenu
: BirMouseEvent
yönetici fonksiyonu. Kullanıcı bir bağlam menüsü açmayı denediğinde çalışır.onContextMenuCapture
:onContextMenu
’nun yakalama aşamasında çalışan versiyonu.onCopy
: BirClipboardEvent
yönetici fonksiyonu. Kullanıcı panoya bir şeyler kopyalamayı denediğinde çalışır.onCopyCapture
:onCopy
’nin yakalama aşamasında çalışan versiyonu.onCut
: BirClipboardEvent
yönetici fonksiyonu. Kullanıcı panoya bir şeyler kesmeyi denediğinde çalışır.onCutCapture
:onCut
’ın yakalama aşamasında çalışan versiyonu.onDoubleClick
: BirMouseEvent
yönetici fonksiyonu. Kullanıcı çift tıkladığında çalışır. Tarayacıdakidblclick
olayına karşılık gelir.onDoubleClickCapture
:onDoubleClick
’in yakalama aşamasında çalışan versiyonu.onDrag
: BirDragEvent
yönetici fonksiyonu. Kullanıcı bir şeyleri sürüklerken çalışır.onDragCapture
:onDrag
’in yakalama aşamasında çalışan versiyonu.onDragEnd
: BirDragEvent
yönetici fonksiyonu. Kullanıcı bir şeyleri sürüklemeyi bıraktığında çalışır.onDragEndCapture
:onDragEnd
’in yakalama aşamasında çalışan versiyonu.onDragEnter
: BirDragEvent
yönetici fonksiyonu. Sürüklenen içerik geçerli bir bırakma hedefine girince çalışır.onDragEnterCapture
:onDragEnter
’ın yakalama aşamasında çalışan versiyonu.onDragOver
: BirDragEvent
yönetici fonksiyonu. Sürüklenen içerik üzerine sürüklendiğinde, geçerli bir bırakma hedefinde çalışır. Bırakmaya izin vermek için buradae.preventDefault()
’u çağırmanız gerekiyor.onDragOverCapture
:onDragOver
’ın yakalama aşamasında çalışan versiyonu.onDragStart
: BirDragEvent
yönetici fonksiyonu. Kullanıcı bir elemanı sürüklemeye başladığında çalışır.onDragStartCapture
:onDragStart
’ın yakalama aşamasında çalışan versiyonu.onDrop
: BirDragEvent
yönetici fonksiyonu. Geçerli bir bırakma hedefinin üstüne bir şeyler bırakılınca çalışır.onDropCapture
:onDrop
’un yakalama aşamasında çalışan versiyonu.onFocus
: BirFocusEvent
yönetici fonksiyonu. Bir elemana odaklanıldığında çalışır. React’takionFocus
olayı, yerleşik tarayıcadakifocus
olayının aksine kabarır.onFocusCapture
:onFocus
’un yakalama aşamasında çalışan versiyonu.onGotPointerCapture
: BirPointerEvent
yönetici fonksiyonu. Bir eleman programsal olarak bir imleci yakalarsa çalışır.onGotPointerCaptureCapture
:onGotPointerCapture
’ın yakalama aşamasında çalışan versiyonu.onKeyDown
: BirKeyboardEvent
yönetici fonksiyonu. Bir tuşa basıldığında çalışır.onKeyDownCapture
:onKeyDown
’ın yakalama aşamasında çalışan versiyonu.onKeyPress
: BirKeyboardEvent
yönetici fonksiyonu. Kullanımdan kaldırıldı. Bunun yerineonKeyDown
veyaonBeforeInput
’u kullanın.onKeyPressCapture
:onKeyPress
’in yakalama aşamasında çalışan versiyonu.onKeyUp
: BirKeyboardEvent
yönetici fonksiyonu. Bastığınız tuştan elinizi çekince çalışır.onKeyUpCapture
:onKeyUp
’ın yakalama aşamasında çalışan versiyonu.onLostPointerCapture
: BirPointerEvent
yönetici fonksiyonu. Bir eleman, bir imleci yakalamayı bırakınca çalışır.onLostPointerCaptureCapture
:onLostPointerCapture
’ın yakalama aşamasında çalışan versiyonu.onMouseDown
: BirMouseEvent
yönetici fonksiyonu. İmlece basıldığında çalışır.onMouseDownCapture
:onMouseDown
’ın yakalama aşamasında çalışan versiyonu.onMouseEnter
: BirMouseEvent
yönetici fonksiyonu. İmleç bir elemanın içine girince çalışır. Yakalama aşaması yoktur. Onun yerine,onMouseLeave
veonMouseEnter
çıkış yapılan elemandan giriş yapılan elemana doğru yayılır.onMouseLeave
: BirMouseEvent
yönetici fonksiyonu. İmleç bir elemanın dışına çıkınca çalışır. Yakalama aşaması yoktur. Onun yerine,onMouseLeave
veonMouseEnter
çıkış yapılan elemandan giriş yapılan elemana doğru yayılır.onMouseMove
: BirMouseEvent
yönetici fonksiyonu. İmleç koordinatları değişince çalışır.onMouseMoveCapture
:onMouseMove
’un yakalama aşamasında çalışan versiyonu.onMouseOut
: BirMouseEvent
yönetici fonksiyonu. İmleç bir elemanın dışına çıkarsa veya bir alt elemanın içine girerse çalışır.onMouseOutCapture
:onMouseOut
’un yakalama aşamasında çalışan versiyonu.onMouseUp
: BirMouseEvent
yönetici fonksiyonu. Bastığınız imleçten elinizi çekince çalışır.onMouseUpCapture
:onMouseUp
’ın yakalama aşamasında çalışan versiyonu.onPointerCancel
: BirPointerEvent
yönetici fonksiyonu. Tarayıcı bir imleç etkileşimini iptal edince çalışır.onPointerCancelCapture
:onPointerCancel
’ın yakalama aşamasında çalışan versiyonu.onPointerDown
: BirPointerEvent
yönetici fonksiyonu. Bir imleç aktif hale gelince çalışır.onPointerDownCapture
:onPointerDown
’ın yakalama aşamasında çalışan versiyonu.onPointerEnter
: BirPointerEvent
yönetici fonksiyonu. Bir imleç bir elemanın içine girince çalışır. Yakalama aşaması yoktur. Onun yerine,onPointerLeave
veonPointerEnter
çıkış yapılan elemandan giriş yapılan elemana doğru yayılır.onPointerLeave
: BirPointerEvent
yönetici fonksiyonu. Bir imleç bir elemanın dışına çıkınca çalışır. Yakalama aşaması yoktur. Onun yerine,onPointerLeave
veonPointerEnter
çıkış yapılan elemandan giriş yapılan elemana doğru yayılır.onPointerMove
: BirPointerEvent
yönetici fonksiyonu. İmleç koordinatları değişince çalışır.onPointerMoveCapture
:onPointerMove
’un yakalama aşamasında çalışan versiyonu.onPointerOut
: BirPointerEvent
yönetici fonksiyonu. İmleç bir elemanın dışına çıkınca, imleç etkileşimi iptal edilirse ve diğer birkaç sebepten ötürü çalışır.onPointerOutCapture
:onPointerOut
’un yakalama aşamasında çalışan versiyonu.onPointerUp
: BirPointerEvent
yönetici fonksiyonu. İmleç artık aktif değilse çalışır.onPointerUpCapture
:onPointerUp
’ın yakalama aşamasında çalışan versiyonu.onPaste
: BirClipboardEvent
yönetici fonksiyonu. Kullanıcı panodan bir şeyler yapıştırmayı denerse çalışır.onPasteCapture
:onPaste
’in yakalama aşamasında çalışan versiyonu.onScroll
: BirEvent
yönetici fonksiyonu. Bir eleman kaydırılınca çalışır. Bu olay kabarmaz.onScrollCapture
:onScroll
’un yakalama aşamasında çalışan versiyonu.onSelect
: BirEvent
yönetici fonksiyonu. Girdi gibi düzenlenebilir bir elemanın içindeki seçim değişince çalışır. ReactonSelect
olayını,contentEditable={true}
elemanları için de çalışacak şekilde genişletir. Ek olarak, React bunu boş seçimlerde ve düzenlemelerde (ki bunlar seçimi etkileyebilir) çalışacak şekilde genişletir.onSelectCapture
:onSelect
’in yakalama aşamasında çalışan versiyonu.onTouchCancel
: BirTouchEvent
yönetici fonksiyonu. Tarayıcı bir dokunma etkileşimini iptal edince çalışır.onTouchCancelCapture
:onTouchCancel
’ın yakalama aşamasında çalışan versiyonu.onTouchEnd
: BirTouchEvent
yönetici fonksiyonu. Bir veya daha fazla dokunma noktası kaldırılınca çalışır.onTouchEndCapture
:onTouchEnd
’in yakalama aşamasında çalışan versiyonu.onTouchMove
: BirTouchEvent
yönetici fonksiyonu. Bir veya daha fazla dokunma noktası hareket ettirilince çalışır.onTouchMoveCapture
:onTouchMove
’un yakalama aşamasında çalışan versiyonu.onTouchStart
: BirTouchEvent
yönetici fonksiyonu. Bir veya daha fazla dokunma noktası yerleştirildiğinde çalışır.onTouchStartCapture
:onTouchStart
’ın yakalama aşamasında çalışan versiyonu.onTransitionEnd
: BirTransitionEvent
yönetici fonksiyonu. Bir CSS geçişi tamamlanınca çalışır.onTransitionEndCapture
:onTransitionEnd
’in yakalama aşamasında çalışan versiyonu.onWheel
: BirWheelEvent
yönetici fonksiyonu. Kullanıcı fare tekerleğini döndürünce çalışır.onWheelCapture
:onWheel
’ın yakalama aşamasında çalışan versiyonu.role
: Bir string. Yardımcı teknolojiler için elemanın rolünü açık bir şekilde belirtir.slot
: Bir string. Shadow DOM’u kullanırken slot ismini belirtir. React’ta buna denk bir model genellikle JSX’in prop olarak iletilmesiyle elde edilir. Örneğin,<Layout left={<Sidebar />} right={<Content />} />
.spellCheck
: Bir boolean veya boş. Eğer açık bir şekildetrue
veyafalse
olarak ayarlanırsa yazım denetimini etkinleştirir veya devre dışı bırakır.tabIndex
: Bir sayı. Varsayılan Tab tuşu davranışını geçersiz kılar.-1
ve0
dışında değerleri kullanmaktan kaçının.title
: Bir string. Elemanın araç ipucu metnini belirtir.translate
:'yes'
veya'no'
.'no'
değerini vermek eleman içeriğinin çevrilmesini engeller.
Prop olarak özel nitelikler de verebilirsiniz, örneğin ozelprop="herhangiBirDeger"
. Bu, üçüncü parti kütüphaneleri entegre ederken işinize yarayabilir. Özel nitelik isimlerinin küçük harflerle yazılması ve on
ile başlamaması gerekmektedir. Değer bir stringe dönüştürülecek. Eğer null
veya undefined
verirseniz bu özel nitelik kaldırılacaktır.
Şu olaylar yalnızca <form>
elemanlarında çalışır:
onReset
: BirEvent
yönetici fonksiyonu. Form sıfırlanınca çalışır.onResetCapture
:onReset
’in yakalama aşamasında çalışan versiyonu.onSubmit
: BirEvent
yönetici fonksiyonu. Form gönderilince çalışır.onSubmitCapture
:onSubmit
’in yakalama aşamasında çalışan versiyonu.
Şu olaylar yalnızca <dialog>
elemanlarında çalışır. Tarayıcı olaylarının aksine, bunlar React’ta kabarırlar:
onCancel
: BirEvent
yönetici fonksiyonu. Kullanıcı diyaloğu kapatmayı deneyince çalışır.onCancelCapture
:onCancel
’ın yakalama aşamasında çalışan versiyonu.onClose
: BirEvent
yönetici fonksiyonu. Diyalog kapatılınca çalışır.onCloseCapture
:onClose
’un yakalama aşamasında çalışan versiyonu.
Şu olaylar yalnızca <details>
elemanlarında çalışır. Tarayıcı olaylarının aksine, bunlar React’ta kabarırlar:
onToggle
: BirEvent
yönetici fonksiyonu. Kullanıcı detayların aç-kapa modları arasında geçiş yapınca çalışır.onToggleCapture
:onToggle
’ın yakalama aşamasında çalışan versiyonu.
Şu olaylar <img>
, <iframe>
, <object>
, <embed>
, <link>
, ve SVG <image>
elemanlarında çalışır. Tarayıcı olaylarının aksine, bunlar React’ta kabarırlar:
onLoad
: BirEvent
yönetici fonksiyonu. Kaynak yüklenince çalışır.onLoadCapture
:onLoad
’un yakalama aşamasında çalışan versiyonu.onError
: BirEvent
yönetici fonksiyonu. Kaynak yüklenemeyince çalışır.onErrorCapture
:onError
’ın yakalama aşamasında çalışan versiyonu.
Şu olaylar <audio>
ve <video>
gibi kaynaklarda çalışır. Tarayıcı olaylarının aksine, bunlar React’ta kabarırlar:
onAbort
: BirEvent
yönetici fonksiyonu. Kaynak bir hatayla karşılaşmamasına rağmen tam olarak yüklenmediğinde çalışır.onAbortCapture
:onAbort
’un yakalama aşamasında çalışan versiyonu.onCanPlay
: BirEvent
yönetici fonksiyonu. Oynatmaya başlamak için yeterince veri olup, arabelleğe almadan sonuna kadar oynatmaya yetecek kadar veri olmadığı zaman çalışır.onCanPlayCapture
:onCanPlay
’in yakalama aşamasında çalışan versiyonu.onCanPlayThrough
: BirEvent
yönetici fonksiyonu. Arabelleğe almadan sonuna kadar oynatmayı mümkün kılacak kadar veri olduğu zaman çalışır.onCanPlayThroughCapture
:onCanPlayThrough
’nun yakalama aşamasında çalışan versiyonu.onDurationChange
: BirEvent
yönetici fonksiyonu. Medya süresi güncellenince çalışır.onDurationChangeCapture
:onDurationChange
’in yakalama aşamasında çalışan versiyonu.onEmptied
: BirEvent
yönetici fonksiyonu. Medya boşaltılınca çalışır.onEmptiedCapture
:onEmptied
’in yakalama aşamasında çalışan versiyonu.onEncrypted
: BirEvent
yönetici fonksiyonu. Tarayıcı şifrelenmiş bir medyayla karşılaşınca çalışır.onEncryptedCapture
:onEncrypted
’ın yakalama aşamasında çalışan versiyonu.onEnded
: BirEvent
yönetici fonksiyonu. Oynatacak bir şey kalmadığı için oynatma durunca çalışır.onEndedCapture
:onEnded
’ın yakalama aşamasında çalışan versiyonu.onError
: BirEvent
yönetici fonksiyonu. Kaynak yüklenemeyince çalışır.onErrorCapture
:onError
’ın yakalama aşamasında çalışan versiyonu.onLoadedData
: BirEvent
yönetici fonksiyonu. Mevcut oynatma çerçevesi yüklenince çalışır.onLoadedDataCapture
:onLoadedData
’nın yakalama aşamasında çalışan versiyonu.onLoadedMetadata
: BirEvent
yönetici fonksiyonu. Üstveri yüklenince çalışır.onLoadedMetadataCapture
:onLoadedMetadata
’nın yakalama aşamasında çalışan versiyonu.onLoadStart
: BirEvent
yönetici fonksiyonu. Tarayıcı, kaynağı yüklemeye başlayınca çalışır.onLoadStartCapture
:onLoadStart
’ın yakalama aşamasında çalışan versiyonu.onPause
: BirEvent
yönetici fonksiyonu. Medya duraklatılınca çalışır.onPauseCapture
:onPause
’un yakalama aşamasında çalışan versiyonu.onPlay
: BirEvent
yönetici fonksiyonu. Medya duraklatmadan çıkınca çalışır.onPlayCapture
:onPlay
’in yakalama aşamasında çalışan versiyonu.onPlaying
: BirEvent
yönetici fonksiyonu. Medya çalmaya başlayınca veya baştan başlayınca çalışır.onPlayingCapture
:onPlaying
’in yakalama aşamasında çalışan versiyonu.onProgress
: BirEvent
yönetici fonksiyonu. Kaynak yüklenirken aralıklı olarak çalışır.onProgressCapture
:onProgress
’in yakalama aşamasında çalışan versiyonu.onRateChange
: BirEvent
yönetici fonksiyonu. Çalma hızı değişince çalışır.onRateChangeCapture
:onRateChange
’in yakalama aşamasında çalışan versiyonu.onResize
: BirEvent
yönetici fonksiyonu. Video boyutu değişince çalışır.onResizeCapture
:onResize
’ın yakalama aşamasında çalışan versiyonu.onSeeked
: BirEvent
yönetici fonksiyonu. Arama (seeking) işlemi tamamlanınca çalışır.onSeekedCapture
:onSeeked
’in yakalama aşamasında çalışan versiyonu.onSeeking
: BirEvent
yönetici fonksiyonu. Arama (seeking) işlemi başlayınca çalışır.onSeekingCapture
:onSeeking
’in yakalama aşamasında çalışan versiyonu.onStalled
: BirEvent
yönetici fonksiyonu. Tarayıcı veri beklerken takılı kalınca çalışır.onStalledCapture
:onStalled
’un yakalama aşamasında çalışan versiyonu.onSuspend
: BirEvent
yönetici fonksiyonu. Kaynak yükleme asılı kalınca çalışır.onSuspendCapture
:onSuspend
’in yakalama aşamasında çalışan versiyonu.onTimeUpdate
: BirEvent
yönetici fonksiyonu. Mevcut oynatma zamanı güncellenince çalışır.onTimeUpdateCapture
:onTimeUpdate
’in yakalama aşamasında çalışan versiyonu.onVolumeChange
: BirEvent
yönetici fonksiyonu. Videonun sesi değişince çalışır.onVolumeChangeCapture
:onVolumeChange
’in yakalama aşamasında çalışan versiyonu.onWaiting
: BirEvent
yönetici fonksiyonu. Oynatma geçici veri eksikliğinden dolayı durunca çalışır.onWaitingCapture
:onWaiting
’in yakalama aşamasında çalışan versiyonu.
Uyarılar
- Aynı anda hem
children
hem dedangerouslySetInnerHTML
kullanamazsınız. - Bazı olaylar (
onAbort
veonLoad
gibi) tarayıcıda kabarmaz ama React’ta kabarır.
ref
callback fonksiyonu
ref
niteliğine, bir ref nesnesi yerine (useRef
tarafından döndürülen gibi) bir fonksiyon verebilirsiniz.
<div ref={(node) => console.log(node)} />
ref
callback’inin örnek kullanımına bakınız.
React, <div>
DOM düğümü ekrana eklendiğinde, ref
callback’inizi argümanda DOM düğümü (node
) olacak şekilde çağıracaktır. Bu <div>
DOM düğümü kaldırıldığında ise React, ref
callback’inizi null
ile çağıracaktır.
Ayrıca React, siz farklı bir ref
callback’i verir vermez ref
callback’inizi çağıracaktır. Yukarıdaki örnekteki (node) => { ... }
, her render’da farklı bir fonksiyondur. Bileşeniniz tekrar render edildiğinde önceki fonksiyon argümanında null
ile, sonraki fonkisyon ise DOM düğümüyle çağırılacaktır.
Parametreler
node
: Bir DOM düğümü veyanull
. React, ref bağlanınca size DOM düğümü, bağlantı kesilince isenull
verecektir. Eğer ki her render’daref
callback’i için aynı fonksiyon referansını vermezseniz, callback’in geçici olarak bağlantısı kesilecek ve bileşenin her yeniden render’lanması sırasında tekrar bağlanacaktır.
Döndürülenler
ref
callback’i herhangi bir şey geri döndürmez.
React olay nesnesi
Olay yöneticileriniz bir React olay nesnesi alacaktır. Buna bazen “sentetik olay” da denir.
<button onClick={e => {
console.log(e); // React olay nesnesi
}} />
Altta yatan DOM olaylarıyla aynı standartlara uyar ama bazı tarayıcı tutarsızlıklarına çözüm sağlar.
Bazı React olayları tarayıcının yerel olaylarıyla birebir eşleşmez. Örneğin onMouseLeave
’de e.nativeEvent
bir mouseout
olayına işaret edecektir. Birebir eşleşme açık API’ye dahil değildir ve gelecekte değişebilir. Eğer herhangi bir sebeple altta yatan tarayıcı olayına ihtiyacınız varsa e.nativeEvent
’ten ulaşabilirsiniz.
Özellikler
React olay nesneleri bazı standart Event
özelliklerini uygular:
bubbles
: Bir boolean. Olayın DOM boyunca kabarıp kabarmadığını döndürür.cancelable
: Bir boolean. Olayın iptal edip edilemediğini döndürür.currentTarget
: Bir DOM düğümü. Mevcut yöneticinin React ağacında bağlı olduğu düğümü döndürür.defaultPrevented
: Bir boolean.preventDefault
’un çağırılıp çağırılmadığını döndürür.eventPhase
: Bir sayı. Olayın halihazırda bulunduğu aşamayı döndürür.isTrusted
: Bir boolean. Olayın kullanıcı tarafından oluşturulup oluşturulmadığını döndürür.target
: Bir DOM düğümü. Olayın gerçekleştiği düğümü döndürür (uzak bir alt eleman olabilir).timeStamp
: Bir sayı. Olayın gerçekleştiği zamanı döndürür.
Ek olarak, React olay nesneleri şu özellikleri de sağlar:
nativeEvent
: Bir DOMEvent
’i. Orijinal tarayıcı olay nesnesidir.
Metotlar
React olay nesneleri bazı standart Event
metotlarını uygular:
preventDefault()
: Olay için varsayılan tarayıcı aksiyonunu engeller.stopPropagation()
: Olayın React ağacı boyunca yayılmasını durdurur.
Ek olarak, React olay nesneleri şu metotları da sağlar:
isDefaultPrevented()
:preventDefault
’un çağırılıp çağırılmadığını gösteren bir boolean döndürür.isPropagationStopped()
:stopPropagation
’ın çağırılıp çağırılmadığını gösteren bir boolean döndürür.persist()
: React DOM’uyla kullanılmaz. React Native’de, olaydan sonra olayın özelliklerine ulaşmak için bunu çağırın.isPersistent()
: React DOM’uyla kullanılmaz. React Native’de,persist
’in çağırılıp çağırılmadığını döndürür.
Uyarılar
currentTarget
,eventPhase
,target
, vetype
’ın değerleri React kodunuzun beklediği değerleri yansıtır. React aslında olay yöneticilerini kökte bağlar ama bu React’ın olay nesnelerine yansıtılmaz. Örneğin,e.currentTarget
altta yatane.nativeEvent.currentTarget
ile aynı olmayabilir. Polyfill yapılmış olaylardae.type
(React olay tipi),e.nativeEvent.type
’tan (altta yatan tip) farklı olabilir.
AnimationEvent
yönetici fonksiyonu
CSS animasyonu olayları için bir olay yöneticisi tipi.
<div
onAnimationStart={e => console.log('onAnimationStart')}
onAnimationIteration={e => console.log('onAnimationIteration')}
onAnimationEnd={e => console.log('onAnimationEnd')}
/>
Parametreler
e
: Şu ekstraAnimationEvent
özelliklerine sahip olan bir React olay nesnesi:
ClipboardEvent
yönetici fonksiyonu
Clipboard API olayları için bir olay yöneticisi tipi.
<input
onCopy={e => console.log('onCopy')}
onCut={e => console.log('onCut')}
onPaste={e => console.log('onPaste')}
/>
Parametreler
-
e
: Şu ekstraClipboardEvent
özelliklerine sahip olan bir React olay nesnesi:
CompositionEvent
yönetici fonksiyonu
Girdi metodu düzenleyicisi (IME) olayları için bir olay yöneticisi tipi.
<input
onCompositionStart={e => console.log('onCompositionStart')}
onCompositionUpdate={e => console.log('onCompositionUpdate')}
onCompositionEnd={e => console.log('onCompositionEnd')}
/>
Parametreler
e
: Şu ekstraCompositionEvent
özelliklerine sahip olan bir React olay nesnesi:
DragEvent
yönetici fonksiyonu
HTML Sürükle ve Bırak API’si olayları için bir olay yöneticisi tipi.
<>
<div
draggable={true}
onDragStart={e => console.log('onDragStart')}
onDragEnd={e => console.log('onDragEnd')}
>
Sürükleme kaynağı
</div>
<div
onDragEnter={e => console.log('onDragEnter')}
onDragLeave={e => console.log('onDragLeave')}
onDragOver={e => { e.preventDefault(); console.log('onDragOver'); }}
onDrop={e => console.log('onDrop')}
>
Bırakma hedefi
</div>
</>
Parametreler
-
e
: Şu ekstraDragEvent
özelliklerine sahip olan bir React olay nesnesi:Ayrıca kalıtılmış
MouseEvent
özellikleri de buna dahildir:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Ayrıca kalıtılmış
UIEvent
özellikleri de buna dahildir:
FocusEvent
yönetici fonksiyonu
Odaklanma olayları için bir olay yöneticisi tipi.
<input
onFocus={e => console.log('onFocus')}
onBlur={e => console.log('onBlur')}
/>
Parametreler
-
e
: Şu ekstraFocusEvent
özelliklerine sahip olan bir React olay nesnesi:Ayrıca kalıtılmış
UIEvent
özellikleri de buna dahildir:
Event
yönetici fonksiyonu
Genel olaylar için bir olay yöneticisi tipi.
Parametreler
e
: Ek özellikleri olmayan bir React olay nesnesi.
InputEvent
yönetici fonksiyonu
onBeforeInput
olayı için bir olay yöneticisi tipi.
<input onBeforeInput={e => console.log('onBeforeInput')} />
Parametreler
e
: Şu ekstraInputEvent
özelliklerine sahip olan bir React olay nesnesi:
KeyboardEvent
yönetici fonksiyonu
Klavye olayları için bir olay yöneticisi tipi.
<input
onKeyDown={e => console.log('onKeyDown')}
onKeyUp={e => console.log('onKeyUp')}
/>
Parametreler
-
e
: Şu ekstraKeyboardEvent
özelliklerine sahip olan bir React olay nesnesi:altKey
charCode
code
ctrlKey
getModifierState(key)
key
keyCode
locale
metaKey
location
repeat
shiftKey
which
Ayrıca kalıtılmış
UIEvent
özellikleri de buna dahildir:
MouseEvent
yönetici fonksiyonu
Fare olayları için bir olay yöneticisi tipi.
<div
onClick={e => console.log('onClick')}
onMouseEnter={e => console.log('onMouseEnter')}
onMouseOver={e => console.log('onMouseOver')}
onMouseDown={e => console.log('onMouseDown')}
onMouseUp={e => console.log('onMouseUp')}
onMouseLeave={e => console.log('onMouseLeave')}
/>
Parametreler
-
e
: Şu ekstraMouseEvent
özelliklerine sahip olan bir React olay nesnesi:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Ayrıca kalıtılmış
UIEvent
özellikleri de buna dahildir:
PointerEvent
yönetici fonksiyonu
İmleç olayları için bir olay yöneticisi tipi.
<div
onPointerEnter={e => console.log('onPointerEnter')}
onPointerMove={e => console.log('onPointerMove')}
onPointerDown={e => console.log('onPointerDown')}
onPointerUp={e => console.log('onPointerUp')}
onPointerLeave={e => console.log('onPointerLeave')}
/>
Parametreler
-
e
: Şu ekstraPointerEvent
özelliklerine sahip olan bir React olay nesnesi:Ayrıca kalıtılmış
MouseEvent
özellikleri de buna dahildir:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Ayrıca kalıtılmış
UIEvent
özellikleri de buna dahildir:
TouchEvent
yönetici fonksiyonu
Dokunma olayları için bir olay yöneticisi tipi.
<div
onTouchStart={e => console.log('onTouchStart')}
onTouchMove={e => console.log('onTouchMove')}
onTouchEnd={e => console.log('onTouchEnd')}
onTouchCancel={e => console.log('onTouchCancel')}
/>
Parametreler
-
e
: Şu ekstraTouchEvent
özelliklerine sahip olan bir React olay nesnesi:Ayrıca kalıtılmış
UIEvent
özellikleri de buna dahildir:
TransitionEvent
yönetici fonksiyonu
CSS geçiş olayları için bir olay yöneticisi tipi.
<div
onTransitionEnd={e => console.log('onTransitionEnd')}
/>
Parametreler
e
: Şu ekstraTransitionEvent
özelliklerine sahip olan bir React olay nesnesi:
UIEvent
yönetici fonksiyonu
Genel UI olayları için bir olay yöneticisi tipi.
<div
onScroll={e => console.log('onScroll')}
/>
Parametreler
e
: Şu ekstraUIEvent
özelliklerine sahip olan bir React olay nesnesi:
WheelEvent
yönetici fonksiyonu
onWheel
olayı için bir olay yöneticisi tipi.
<div
onWheel={e => console.log('onWheel')}
/>
Parametreler
-
e
: Şu ekstraWheelEvent
özelliklerine sahip olan bir React olay nesnesi:Ayrıca kalıtılmış
MouseEvent
özellikleri de buna dahildir:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Ayrıca kalıtılmış
UIEvent
özellikleri de buna dahildir:
Kullanım
CSS stillerinin uygulanması
React’ta bir CSS sınıfını className
kullanarak belirtirsiniz. HTML’deki class
niteliği gibi çalışır:
<img className="avatar" />
Sonra bu sınıf için CSS kurallarını ayrı bir CSS dosyasına yazarsınız:
/* CSS dosyanız */
.avatar {
border-radius: 50%;
}
React, CSS dosyalarını nasıl ekleyeceğinizle ilgili sıkı kurallar koymaz. En basit yol, HTML’inize bir<link>
etiketi eklemektir. Eğer bir derleme aracı veya bir çatı kullanırsanız, projenize nasıl CSS dosyası ekleyeceğinizi öğrenmek için ilgili dokümantasyona danışabilirsiniz.
Bazen stil değerleri veriye bağlıdır. Dinamik bir şekilde stillendirmek için style
niteliğini kullanın:
<img
className="avatar"
style={{
width: user.imageSize,
height: user.imageSize
}}
/>
Yukarıdaki örnekteki style={{}}
özel bir söz dizimi değil, style={ }
JSX süslü parantezleri içinde yer alan sıradan bir {}
nesnesidir. Stilleriniz JavaScript değişkenlerine bağlı olduğunda yalnızca style
kullanmanızı öneriyoruz.
export default function Avatar({ user }) { return ( <img src={user.imageUrl} alt={user.name + ' profil fotoğrafı'} className="avatar" style={{ width: user.imageSize, height: user.imageSize }} /> ); }
Derinlemesine İnceleme
CSS sınıflarını koşulsal olarak uygulamak için className
string’ini JavaScript’i kullanarak kendiniz üretmeniz gerekiyor.
Örneğin, className={'row ' + (isSelected ? 'selected': '')}
, isSelected
’ın true
olup olmamasına göre className="row"
veya className="row selected"
üretecektir.
Bunu daha okunaklı hale getirmek için classnames
gibi minik yardımcı bir kütüphane kullanabilirsiniz:
import cn from 'classnames';
function Row({ isSelected }) {
return (
<div className={cn('row', isSelected && 'selected')}>
...
</div>
);
}
Özellikle birden fazla koşulsal sınıfınız varsa kullanışlı oluyor:
import cn from 'classnames';
function Row({ isSelected, size }) {
return (
<div className={cn('row', {
selected: isSelected,
large: size === 'large',
small: size === 'small',
})}>
...
</div>
);
}
Bir DOM düğümünü ref ile manipüle etme
Bazı durumlarda tarayıcıdaki DOM düğümünün JSX’teki bir etiket ile ilişkilendirilmesine ihtiyaç duyacaksınız. Örneğin, eğer bir butona tıkladığınızda bir <input>
’a odaklanmak istiyorsanız, tarayıcıdaki <input>
DOM düğümünde focus()
’u çağırmanız gerekiyor.
Bir etikette, tarayıcıdaki DOM düğümünü elde etmek için, bir ref tanımlayın ve bunu, o etikete ref
niteliği olarak verin:
import { useRef } from 'react';
export default function Form() {
const inputRef = useRef(null);
// ...
return (
<input ref={inputRef} />
// ...
React, DOM düğümü ekrana render edildikten sonra onu inputRef.current
’ın içine koyacaktır.
import { useRef } from 'react'; export default function Form() { const inputRef = useRef(null); function handleClick() { inputRef.current.focus(); } return ( <> <input ref={inputRef} /> <button onClick={handleClick}> Girdiye odaklan </button> </> ); }
DOM’u ref’lerle manipüle etme hakkında daha fazlasını okuyun ve daha fazla örneğe göz atın.
Daha ileri düzey kullanım durumları için ref
niteliği ayrıca bir callback fonksiyonu da kabul eder.
İç HTML’i tehlikeli bir şekilde ayarlama
Bir elemana şu şekilde düz bir HTML string’i verebilirsiniz:
const markup = { __html: '<p>düz bir html içeriği</p>' };
return <div dangerouslySetInnerHTML={markup} />;
Bu tehlikelidir. Altta yatan DOM’un innerHTML
özelliğinde olduğu gibi, son derece dikkatli kullanmanız gerekir. Eğer ki biçimlendirme (markup) çok güvenilir bir kaynaktan gelmiyorsa, bu şekilde bir XSS zayıflığı oluşturmak gereksizdir.
Örneğin, eğer Markdown’ı HTML’e dönüştüren bir Markdown kütüphanesi kullanıyorsanız, ayrıştırıcısında herhangi bir hata olmadığına güveniyorsanız ve kullanıcı yalnızca kendi girdisini görüyorsa, sonuçta oluşan HTML’i şöyle görüntüleyebilirsiniz:
import { Remarkable } from 'remarkable'; const md = new Remarkable(); function renderMarkdownToHTML(markdown) { // Bu yöntem, YALNIZCA sonuçta oluşan HTML // aynı kullanıcıya gösterildiği ve Markdown // ayrıştırıcısında hata olmadığına // emin olduğunuz için güvenlidir. const renderedHTML = md.render(markdown); return {__html: renderedHTML}; } export default function MarkdownPreview({ markdown }) { const markup = renderMarkdownToHTML(markdown); return <div dangerouslySetInnerHTML={markup} />; }
{__html}
nesnesi, yukarıdaki örnekte renderMarkdownToHTML
olduğu gibi, HTML’nin oluşturulduğu yere mümkün olduğunca yakın oluşturulmalıdır. Bu, kodunuzda kullanılan tüm ham HTML’nin açıkça bu şekilde işaretlenmesini ve yalnızca HTML içermesini beklediğiniz değişkenlerin dangerouslySetInnerHTML
’ye iletilmesini sağlar. Nesnenin satır içi olarak <div dangerouslySetInnerHTML={{__html: markup}} />
gibi oluşturulması önerilmez.
Gelişigüzel HTML’i render etmenin neden tehlikeli olduğunu görmek için yukarıdaki kod yerine şunu koyun:
const post = {
// Bu içeriğin veritabanında saklandığını hayal edelim.
content: `<img src="" onerror='alert("hacklendiniz!!!")'>`
};
export default function MarkdownPreview() {
// 🔴 GÜVENLİK AÇIĞI: dangerouslySetInnerHTML'e güvenilir olmayan girdi veriyorsunuz
const markup = { __html: post.content };
return <div dangerouslySetInnerHTML={markup} />;
}
HTML’de gömülü olan kod çalışacak. Bir hacker, bu güvenlik açığını kullanıcı bilgilerini çalmak veya kendi çıkarları için kullanabilir. dangerouslySetInnerHTML
’i yalnızca güvenilir ve temizlenmiş verilerle kullanın.
Fare olaylarını yönetme
Bu örnek bazı yaygın fare olaylarını ve ne zaman çalıştıklarını gösteriyor.
export default function MouseExample() { return ( <div onMouseEnter={e => console.log('onMouseEnter (üst eleman)')} onMouseLeave={e => console.log('onMouseLeave (üst eleman)')} > <button onClick={e => console.log('onClick (birinci buton)')} onMouseDown={e => console.log('onMouseDown (birinci buton)')} onMouseEnter={e => console.log('onMouseEnter (birinci buton)')} onMouseLeave={e => console.log('onMouseLeave (birinci buton)')} onMouseOver={e => console.log('onMouseOver (birinci buton)')} onMouseUp={e => console.log('onMouseUp (birinci buton)')} > Birinci buton </button> <button onClick={e => console.log('onClick (ikinci buton)')} onMouseDown={e => console.log('onMouseDown (ikinci buton)')} onMouseEnter={e => console.log('onMouseEnter (ikinci buton)')} onMouseLeave={e => console.log('onMouseLeave (ikinci buton)')} onMouseOver={e => console.log('onMouseOver (ikinci buton)')} onMouseUp={e => console.log('onMouseUp (ikinci buton)')} > İkinci buton </button> </div> ); }
İmleç olaylarını yönetme
Bu örnek bazı yaygın imleç olayarını ve ne zaman çalıştıklarını gösteriyor.
export default function PointerExample() { return ( <div onPointerEnter={e => console.log('onPointerEnter (üst eleman)')} onPointerLeave={e => console.log('onPointerLeave (üst eleman)')} style={{ padding: 20, backgroundColor: '#ddd' }} > <div onPointerDown={e => console.log('onPointerDown (birinci alt eleman)')} onPointerEnter={e => console.log('onPointerEnter (birinci alt eleman)')} onPointerLeave={e => console.log('onPointerLeave (birinci alt eleman)')} onPointerMove={e => console.log('onPointerMove (birinci alt eleman)')} onPointerUp={e => console.log('onPointerUp (birinci alt eleman)')} style={{ padding: 20, backgroundColor: 'lightyellow' }} > Birinci alt eleman </div> <div onPointerDown={e => console.log('onPointerDown (ikinci alt eleman)')} onPointerEnter={e => console.log('onPointerEnter (ikinci alt eleman)')} onPointerLeave={e => console.log('onPointerLeave (ikinci alt eleman)')} onPointerMove={e => console.log('onPointerMove (ikinci alt eleman)')} onPointerUp={e => console.log('onPointerUp (ikinci alt eleman)')} style={{ padding: 20, backgroundColor: 'lightblue' }} > İkinci alt eleman </div> </div> ); }
Odaklanma olaylarını yönetme
Odaklanma olayları React’ta kabarırlar. Odaklanma ve bulandırma olaylarının üst elemanın dışında oluşup oluşmadığını ayırt etmek için currentTarget
ve relatedTarget
’i kullanabilirsiniz. Aşağıdaki örnek, bir alt elemana veya üst elemana odaklanmanın ve tüm alt ağaca giren veya çıkan odaklanmaların nasıl tespit edileceğini gösteriyor.
export default function FocusExample() { return ( <div tabIndex={1} onFocus={(e) => { if (e.currentTarget === e.target) { console.log('üst elemana odaklanıldı'); } else { console.log(e.target.name, 'alt elemanına odaklanıldı'); } if (!e.currentTarget.contains(e.relatedTarget)) { // Alt elemanlar arasındaki odağı değiştirirken tetiklenmez console.log('odak üst elemana girdi'); } }} onBlur={(e) => { if (e.currentTarget === e.target) { console.log('üst elemandan odak kaldırıldı'); } else { console.log(e.target.name, 'alt elemanından odak kaldırıldı'); } if (!e.currentTarget.contains(e.relatedTarget)) { // Alt elemanlar arasındaki odağı değiştirirken tetiklenmez console.log('odak üst elemandan çıktı'); } }} > <label> İsim: <input name="isim" /> </label> <label> Soyisim: <input name="soyisim" /> </label> </div> ); }
Klavye olaylarını yönetme
Bu örnek bazı yaygın klavye olaylarını ve ne zaman çalıştıklarını gösteriyor.
export default function KeyboardExample() { return ( <label> İsim: <input name="isim" onKeyDown={e => console.log('onKeyDown:', e.key, e.code)} onKeyUp={e => console.log('onKeyUp:', e.key, e.code)} /> </label> ); }