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>) refcallback fonksiyonu- React olay nesnesi
AnimationEventyönetici fonksiyonuClipboardEventyönetici fonksiyonuCompositionEventyönetici fonksiyonuDragEventyönetici fonksiyonuFocusEventyönetici fonksiyonuEventyönetici fonksiyonuInputEventyönetici fonksiyonuKeyboardEventyönetici fonksiyonuMouseEventyönetici fonksiyonuPointerEventyönetici fonksiyonuTouchEventyönetici fonksiyonuTransitionEventyönetici fonksiyonuUIEventyönetici fonksiyonuWheelEventyö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,undefinedve 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,childrenprop’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.dangerouslySetInnerHTMLkullanımıyla ilgili daha fazlasını okuyun. -
ref:useRefveyacreateRef’ten bir ref nesnesi, veyarefcallback 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ğertrueise, hemchildrenhem decontentEditable={true}prop’larına sahip olan elemanlarda (ki bunlar normalde birlikte çalışmazlar) React’ın gösterdiği uyarıları baskılar. Bunu,contentEditableiç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’itrueolarak 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 isimlericamelCaseolarak yazılmalıdır, örneğinfont-weightyerinefontWeight. 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 iseclassNameile düz CSS sınıfları uygulamak daha verimli.classNameandstyleile 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ğertrueise 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. HTMLforniteliğ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çinuseIdile 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: BirAnimationEventyönetici fonksiyonu. Bir CSS animasyonu tamamlandığında çalışır.onAnimationEndCapture:onAnimationEnd’in yakalama aşamasında çalışan versiyonu.onAnimationIteration: BirAnimationEventyö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: BirAnimationEventyönetici fonksiyonu. Bir CSS animasyonu başladığında çalışır.onAnimationStartCapture:onAnimationStart’ın yakalama aşamasında çalışan versiyonu.onAuxClick: BirMouseEventyönetici fonksiyonu. Birincil olmayan bir imleç tuşuna basıldığında çalışır.onAuxClickCapture:onAuxClick’in yakalama aşamasında çalışan versiyonu.onBeforeInput: BirInputEventyönetici fonksiyonu. Düzenlenebilir bir elemanın değeri değiştirilmeden önce çalışır. React, henüz yerelbeforeinputolayı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: BirFocusEventyönetici fonksiyonu. Bir eleman odağı kaybedince çalışır. React’takionBlurolayı, yerleşik tarayıcıdakiblurolayının aksine kabarır.onBlurCapture:onBlur’un yakalama aşamasında çalışan versiyonu.onClick: BirMouseEventyö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: BirCompositionEventyö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: BirCompositionEventyö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: BirCompositionEventyö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: BirMouseEventyö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: BirClipboardEventyönetici fonksiyonu. Kullanıcı panoya bir şeyler kopyalamayı denediğinde çalışır.onCopyCapture:onCopy’nin yakalama aşamasında çalışan versiyonu.onCut: BirClipboardEventyönetici fonksiyonu. Kullanıcı panoya bir şeyler kesmeyi denediğinde çalışır.onCutCapture:onCut’ın yakalama aşamasında çalışan versiyonu.onDoubleClick: BirMouseEventyönetici fonksiyonu. Kullanıcı çift tıkladığında çalışır. Tarayacıdakidblclickolayına karşılık gelir.onDoubleClickCapture:onDoubleClick’in yakalama aşamasında çalışan versiyonu.onDrag: BirDragEventyönetici fonksiyonu. Kullanıcı bir şeyleri sürüklerken çalışır.onDragCapture:onDrag’in yakalama aşamasında çalışan versiyonu.onDragEnd: BirDragEventyö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: BirDragEventyö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: BirDragEventyö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: BirDragEventyö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: BirDragEventyö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: BirFocusEventyönetici fonksiyonu. Bir elemana odaklanıldığında çalışır. React’takionFocusolayı, yerleşik tarayıcadakifocusolayının aksine kabarır.onFocusCapture:onFocus’un yakalama aşamasında çalışan versiyonu.onGotPointerCapture: BirPointerEventyönetici fonksiyonu. Bir eleman programsal olarak bir imleci yakalarsa çalışır.onGotPointerCaptureCapture:onGotPointerCapture’ın yakalama aşamasında çalışan versiyonu.onKeyDown: BirKeyboardEventyönetici fonksiyonu. Bir tuşa basıldığında çalışır.onKeyDownCapture:onKeyDown’ın yakalama aşamasında çalışan versiyonu.onKeyPress: BirKeyboardEventyönetici fonksiyonu. Kullanımdan kaldırıldı. Bunun yerineonKeyDownveyaonBeforeInput’u kullanın.onKeyPressCapture:onKeyPress’in yakalama aşamasında çalışan versiyonu.onKeyUp: BirKeyboardEventyönetici fonksiyonu. Bastığınız tuştan elinizi çekince çalışır.onKeyUpCapture:onKeyUp’ın yakalama aşamasında çalışan versiyonu.onLostPointerCapture: BirPointerEventyönetici fonksiyonu. Bir eleman, bir imleci yakalamayı bırakınca çalışır.onLostPointerCaptureCapture:onLostPointerCapture’ın yakalama aşamasında çalışan versiyonu.onMouseDown: BirMouseEventyönetici fonksiyonu. İmlece basıldığında çalışır.onMouseDownCapture:onMouseDown’ın yakalama aşamasında çalışan versiyonu.onMouseEnter: BirMouseEventyönetici fonksiyonu. İmleç bir elemanın içine girince çalışır. Yakalama aşaması yoktur. Onun yerine,onMouseLeaveveonMouseEnterçıkış yapılan elemandan giriş yapılan elemana doğru yayılır.onMouseLeave: BirMouseEventyönetici fonksiyonu. İmleç bir elemanın dışına çıkınca çalışır. Yakalama aşaması yoktur. Onun yerine,onMouseLeaveveonMouseEnterçıkış yapılan elemandan giriş yapılan elemana doğru yayılır.onMouseMove: BirMouseEventyönetici fonksiyonu. İmleç koordinatları değişince çalışır.onMouseMoveCapture:onMouseMove’un yakalama aşamasında çalışan versiyonu.onMouseOut: BirMouseEventyö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: BirMouseEventyönetici fonksiyonu. Bastığınız imleçten elinizi çekince çalışır.onMouseUpCapture:onMouseUp’ın yakalama aşamasında çalışan versiyonu.onPointerCancel: BirPointerEventyönetici fonksiyonu. Tarayıcı bir imleç etkileşimini iptal edince çalışır.onPointerCancelCapture:onPointerCancel’ın yakalama aşamasında çalışan versiyonu.onPointerDown: BirPointerEventyönetici fonksiyonu. Bir imleç aktif hale gelince çalışır.onPointerDownCapture:onPointerDown’ın yakalama aşamasında çalışan versiyonu.onPointerEnter: BirPointerEventyönetici fonksiyonu. Bir imleç bir elemanın içine girince çalışır. Yakalama aşaması yoktur. Onun yerine,onPointerLeaveveonPointerEnterçıkış yapılan elemandan giriş yapılan elemana doğru yayılır.onPointerLeave: BirPointerEventyönetici fonksiyonu. Bir imleç bir elemanın dışına çıkınca çalışır. Yakalama aşaması yoktur. Onun yerine,onPointerLeaveveonPointerEnterçıkış yapılan elemandan giriş yapılan elemana doğru yayılır.onPointerMove: BirPointerEventyönetici fonksiyonu. İmleç koordinatları değişince çalışır.onPointerMoveCapture:onPointerMove’un yakalama aşamasında çalışan versiyonu.onPointerOut: BirPointerEventyö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: BirPointerEventyönetici fonksiyonu. İmleç artık aktif değilse çalışır.onPointerUpCapture:onPointerUp’ın yakalama aşamasında çalışan versiyonu.onPaste: BirClipboardEventyönetici fonksiyonu. Kullanıcı panodan bir şeyler yapıştırmayı denerse çalışır.onPasteCapture:onPaste’in yakalama aşamasında çalışan versiyonu.onScroll: BirEventyönetici fonksiyonu. Bir eleman kaydırılınca çalışır. Bu olay kabarmaz.onScrollCapture:onScroll’un yakalama aşamasında çalışan versiyonu.onSelect: BirEventyönetici fonksiyonu. Girdi gibi düzenlenebilir bir elemanın içindeki seçim değişince çalışır. ReactonSelectolayı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: BirTouchEventyönetici fonksiyonu. Tarayıcı bir dokunma etkileşimini iptal edince çalışır.onTouchCancelCapture:onTouchCancel’ın yakalama aşamasında çalışan versiyonu.onTouchEnd: BirTouchEventyö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: BirTouchEventyönetici fonksiyonu. Bir veya daha fazla dokunma noktası hareket ettirilince çalışır.onTouchMoveCapture:onTouchMove’un yakalama aşamasında çalışan versiyonu.onTouchStart: BirTouchEventyönetici fonksiyonu. Bir veya daha fazla dokunma noktası yerleştirildiğinde çalışır.onTouchStartCapture:onTouchStart’ın yakalama aşamasında çalışan versiyonu.onTransitionEnd: BirTransitionEventyönetici fonksiyonu. Bir CSS geçişi tamamlanınca çalışır.onTransitionEndCapture:onTransitionEnd’in yakalama aşamasında çalışan versiyonu.onWheel: BirWheelEventyö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 şekildetrueveyafalseolarak 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.-1ve0dışı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: BirEventyönetici fonksiyonu. Form sıfırlanınca çalışır.onResetCapture:onReset’in yakalama aşamasında çalışan versiyonu.onSubmit: BirEventyö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: BirEventyönetici fonksiyonu. Kullanıcı diyaloğu kapatmayı deneyince çalışır.onCancelCapture:onCancel’ın yakalama aşamasında çalışan versiyonu.onClose: BirEventyö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: BirEventyö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: BirEventyönetici fonksiyonu. Kaynak yüklenince çalışır.onLoadCapture:onLoad’un yakalama aşamasında çalışan versiyonu.onError: BirEventyö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: BirEventyö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: BirEventyö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: BirEventyö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: BirEventyönetici fonksiyonu. Medya süresi güncellenince çalışır.onDurationChangeCapture:onDurationChange’in yakalama aşamasında çalışan versiyonu.onEmptied: BirEventyönetici fonksiyonu. Medya boşaltılınca çalışır.onEmptiedCapture:onEmptied’in yakalama aşamasında çalışan versiyonu.onEncrypted: BirEventyönetici fonksiyonu. Tarayıcı şifrelenmiş bir medyayla karşılaşınca çalışır.onEncryptedCapture:onEncrypted’ın yakalama aşamasında çalışan versiyonu.onEnded: BirEventyönetici fonksiyonu. Oynatacak bir şey kalmadığı için oynatma durunca çalışır.onEndedCapture:onEnded’ın yakalama aşamasında çalışan versiyonu.onError: BirEventyönetici fonksiyonu. Kaynak yüklenemeyince çalışır.onErrorCapture:onError’ın yakalama aşamasında çalışan versiyonu.onLoadedData: BirEventyönetici fonksiyonu. Mevcut oynatma çerçevesi yüklenince çalışır.onLoadedDataCapture:onLoadedData’nın yakalama aşamasında çalışan versiyonu.onLoadedMetadata: BirEventyönetici fonksiyonu. Üstveri yüklenince çalışır.onLoadedMetadataCapture:onLoadedMetadata’nın yakalama aşamasında çalışan versiyonu.onLoadStart: BirEventyönetici fonksiyonu. Tarayıcı, kaynağı yüklemeye başlayınca çalışır.onLoadStartCapture:onLoadStart’ın yakalama aşamasında çalışan versiyonu.onPause: BirEventyönetici fonksiyonu. Medya duraklatılınca çalışır.onPauseCapture:onPause’un yakalama aşamasında çalışan versiyonu.onPlay: BirEventyönetici fonksiyonu. Medya duraklatmadan çıkınca çalışır.onPlayCapture:onPlay’in yakalama aşamasında çalışan versiyonu.onPlaying: BirEventyö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: BirEventyönetici fonksiyonu. Kaynak yüklenirken aralıklı olarak çalışır.onProgressCapture:onProgress’in yakalama aşamasında çalışan versiyonu.onRateChange: BirEventyönetici fonksiyonu. Çalma hızı değişince çalışır.onRateChangeCapture:onRateChange’in yakalama aşamasında çalışan versiyonu.onResize: BirEventyönetici fonksiyonu. Video boyutu değişince çalışır.onResizeCapture:onResize’ın yakalama aşamasında çalışan versiyonu.onSeeked: BirEventyönetici fonksiyonu. Arama (seeking) işlemi tamamlanınca çalışır.onSeekedCapture:onSeeked’in yakalama aşamasında çalışan versiyonu.onSeeking: BirEventyönetici fonksiyonu. Arama (seeking) işlemi başlayınca çalışır.onSeekingCapture:onSeeking’in yakalama aşamasında çalışan versiyonu.onStalled: BirEventyönetici fonksiyonu. Tarayıcı veri beklerken takılı kalınca çalışır.onStalledCapture:onStalled’un yakalama aşamasında çalışan versiyonu.onSuspend: BirEventyönetici fonksiyonu. Kaynak yükleme asılı kalınca çalışır.onSuspendCapture:onSuspend’in yakalama aşamasında çalışan versiyonu.onTimeUpdate: BirEventyönetici fonksiyonu. Mevcut oynatma zamanı güncellenince çalışır.onTimeUpdateCapture:onTimeUpdate’in yakalama aşamasında çalışan versiyonu.onVolumeChange: BirEventyönetici fonksiyonu. Videonun sesi değişince çalışır.onVolumeChangeCapture:onVolumeChange’in yakalama aşamasında çalışan versiyonu.onWaiting: BirEventyö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
childrenhem dedangerouslySetInnerHTMLkullanamazsınız. - Bazı olaylar (
onAbortveonLoadgibi) 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('Bağlı', node);
return () => {
console.log('Temizlik', node)
}
}}>ref geri çağırma fonksiyonunun kullanım örneğine bakın.
<div> DOM düğümü ekrana eklendiğinde, React ref geri çağırma fonksiyonunuzu DOM node parametresiyle çağıracaktır. O <div> DOM düğümü kaldırıldığında, React geri çağırmadan döndürülen temizlik fonksiyonunu çağıracaktır.
React ayrıca, farklı bir ref geri çağırma fonksiyonu geçtiğinizde de ref geri çağırmanızı çağıracaktır. Yukarıdaki örnekte, (node) => { ... } her render işleminde farklı bir fonksiyondur. Bileşen yeniden render edildiğinde, önceki fonksiyon null parametresiyle çağrılacak ve sonraki fonksiyon DOM düğümüyle çağrılacaktır.
Parametreler
node: Bir DOM düğümü.refeklenirken, React size DOM düğümünü iletecektir. Her render işleminderefgeri çağırma fonksiyonu için aynı fonksiyon referansını geçmediğiniz sürece, geri çağırma fonksiyonu her bileşen yeniden render edildiğinde geçici olarak temizlenip yeniden oluşturulacaktır.
Döndürülenler
- isteğe bağlı
temizlik fonksiyonu:refayrıldığında, React temizlik fonksiyonunu çağıracaktır. Eğerrefgeri çağırmasından bir fonksiyon döndürülmezse, React,refayrıldığında geri çağırmayı tekrarnullparametresiyle çağıracaktır. Bu davranış gelecekteki bir sürümde kaldırılacaktır.
Uyarılar
- Strict Mode etkinleştirildiğinde, React ilk gerçek kurululumdan önce bir ekstra sadece geliştirme amaçlı kurulum+temizlik döngüsü çalıştıracaktır. Bu, temizlik mantığınızın kurulum mantığını “yansıttığını” ve kurulumun yaptığı her şeyi durdurup geri aldığından emin olan bir stres testidir. Bu, bir problem oluşturuyorsa temizlik fonksiyonunu uygulayın.
- Farklı bir
refgeri çağırma fonksiyonu geçtiğinizde, React, sağlanmışsa önceki geri çağırmanın temizlik fonksiyonunu çağıracaktır. Eğer temizlik fonksiyonu tanımlanmazsa,refgeri çağırmasınullparametresiyle çağrılacaktır. Sonraki fonksiyon ise DOM düğümü ile çağrılacaktır.
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.currentTargetaltta yatane.nativeEvent.currentTargetile 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:altKeybuttonbuttonsctrlKeyclientXclientYgetModifierState(key)metaKeymovementXmovementYpageXpageYrelatedTargetscreenXscreenYshiftKey
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:altKeycharCodecodectrlKeygetModifierState(key)keykeyCodelocalemetaKeylocationrepeatshiftKeywhich
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:altKeybuttonbuttonsctrlKeyclientXclientYgetModifierState(key)metaKeymovementXmovementYpageXpageYrelatedTargetscreenXscreenYshiftKey
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:altKeybuttonbuttonsctrlKeyclientXclientYgetModifierState(key)metaKeymovementXmovementYpageXpageYrelatedTargetscreenXscreenYshiftKey
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:altKeybuttonbuttonsctrlKeyclientXclientYgetModifierState(key)metaKeymovementXmovementYpageXpageYrelatedTargetscreenXscreenYshiftKey
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 framework 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> ); }