Всі вбудовані компоненти браузера, такі як <div>
, підтримують деякі поширені пропси та події.
Довідник
Загальні компоненти (наприклад, <div>
)
<div className="wrapper">Some content</div>
Дивіться більше прикладів нижче.
Пропси
Ці спеціальні пропси React підтримуються для всіх вбудованих компонентів:
children
: Вузол React (елемент, рядок, число, портал, порожній вузол, такий як null
, undefined
і булеві, або масив інших вузлів React). Вказує вміст всередині компонента. Коли ви використовуєте JSX, ви зазвичай вказуєте проп children
неявно, використовуючи вкладені теги на кшталт <div><span /></div>
.
dangerouslySetInnerHTML
: Об'єкт вигляду { __html: '<p>some html</p>' }
з необробленим HTML-рядком всередині. Перевизначає властивість innerHTML
вузла DOM і відображає переданий HTML всередині. Цей метод слід використовувати з особливою обережністю! Якщо HTML всередині не викликає довіри (наприклад, якщо він заснований на даних користувача), ви ризикуєте впровадити вразливість XSS. Детальніше про використання dangerouslySetInnerHTML
.
ref
: Об'єкт ref з useRef
або createRef
, або ref
функція зворотного виклику, або рядок для застарілих рефів. Ваш ref буде заповнено елементом DOM для цього вузла. Детальніше про маніпуляції з DOM за допомогою рефів.
suppressContentEditableWarning
: Логічний вираз. Якщо true
, пригнічує попередження, яке React показує для елементів, що мають children
і contentEditable={true}
(які зазвичай не працюють разом). Використовуйте його, якщо ви збираєте бібліотеку текстового введення, яка керує вмістом contentEditable
вручну.
suppressHydrationWarning
: Логічний вираз. Якщо ви використовуєте серверний рендеринг, зазвичай з'являється попередження, коли сервер і клієнт рендерять різний вміст. У деяких рідкісних випадках (наприклад, мітки часу) гарантувати точну відповідність дуже важко або неможливо. Якщо ви встановите для suppressHydrationWarning
значення true
, React не буде попереджати вас про невідповідності в атрибутах і вмісті цього елемента. Він працює лише на один рівень вглиб і призначений для використання як аварійний люк. Не зловживайте ним. Почитайте про придушення помилок гідратації.
стиль
: Об'єкт зі стилями CSS, наприклад { fontWeight: 'bold', margin: 20 }
. Подібно до властивості DOM style
, назви властивостей CSS слід записувати як camelCase
, наприклад fontWeight
замість font-weight
. Ви можете передавати рядки або числа як значення. Якщо ви передаєте число, наприклад width: 100
, React автоматично додасть px
("пікселі") до значення, якщо це не властивість unitless. Ми рекомендуємо використовувати style
тільки для динамічних стилів, де ви не знаєте значення стилю наперед. В інших випадках ефективнішим буде застосування звичайних класів CSS з className
. Детальніше про className
та стиль
.
Ці стандартні DOM-пропси також підтримуються для всіх вбудованих компонентів:
accessKey
: Рядок. Вказує комбінацію клавіш для елемента. Зазвичай не рекомендується.
aria-*
: Атрибути ARIA дають змогу вказати інформацію дерева доступності для цього елемента. Дивіться Атрибути ARIA для повної довідки. У React всі імена атрибутів ARIA точно такі ж, як і в HTML.
autoCapitalize
: Рядок. Вказує, чи потрібно вводити дані з великої літери і якщо так, то яким чином.
className
: Рядок. Вказує назву класу CSS елемента. Детальніше про застосування стилів CSS.
contentEditable
: Логічний вираз. Якщо true
, браузер дозволяє користувачеві редагувати відображений елемент безпосередньо. Це використовується для реалізації бібліотек розширеного введення тексту, таких як Lexical. React попереджає, якщо ви намагаєтеся передати дочірні елементи React елементу з contentEditable={true}
, тому що React не зможе оновити його вміст після редагування користувачем.
data-*
: Атрибути даних дозволяють прикріпити до елемента деякі рядкові дані, наприклад, data-fruit="banana"
. У React вони не дуже часто використовуються, оскільки ви зазвичай читаєте дані з пропсів або стану.
dir
: Або 'ltr'
або 'rtl'
. Вказує напрямок тексту елемента.
draggable
: Булеве значення. Визначає, чи можна перетягувати елемент. Частина HTML Drag and Drop API.
enterKeyHint
: Рядок. Вказує, яку дію призначити для клавіші вводу на віртуальних клавіатурах. .
htmlFor
: Рядок. Для <label>
та <output>
дозволяє пов'язати мітку з деяким елементом керування. Те саме, що і для
атрибута HTML. React використовує стандартні назви властивостей DOM (htmlFor
) замість назв HTML-атрибутів.
hidden
: Булеве або рядкове значення. Вказує, чи слід приховувати елемент.
id
: Рядок. Вказує унікальний ідентифікатор для цього елемента, за яким його можна знайти пізніше або з'єднати з іншими елементами. Згенеруйте його за допомогою useId
, щоб уникнути зіткнень між декількома екземплярами одного і того ж компонента.
is
: Рядок. Якщо вказано, компонент поводитиметься як користувацький елемент.
inputMode
: Рядок. Вказує, яку клавіатуру відображати (наприклад, текстову, цифрову або телефонну).
itemProp
: Рядок. Вказує, яку властивість представляє елемент для сканерів структурованих даних.
lang
: Рядок. Вказує мову елемента. .
onAnimationEnd
: Функція AnimationEvent
обробника . Спрацьовує, коли завершується CSS-анімація.
onAnimationEndCapture
: Версія onAnimationEnd
, яка спрацьовує у фазі захоплення.
onAnimationIteration
: Функція-обробник AnimationEvent
. Спрацьовує, коли ітерація CSS-анімації закінчується і починається інша.
onAnimationIterationCapture
: Версія onAnimationIteration
, яка спрацьовує у фазі захоплення.
onAnimationStart
: Функція-обробник AnimationEvent
. Спрацьовує при запуску CSS-анімації.
onAnimationStartCapture
: onAnimationStart
, але спрацьовує на етапі захоплення.
onAuxClick
: Функція-обробник MouseEvent
. Спрацьовує, коли натиснуто кнопку з непервинним вказівником.
onAuxClickCapture
: Версія onAuxClick
, яка спрацьовує у фазі захоплення.
onBeforeInput
: Функція-обробник InputEvent
. Спрацьовує до того, як значення редагованого елемента буде змінено. React не використовує власну подію beforeinput
, натомість намагається заповнити її за допомогою інших подій.
onBeforeInputCapture
: Версія onBeforeInput
, яка спрацьовує у фазі захоплення.
onBlur
: Функція-обробник FocusEvent
. Спрацьовує, коли елемент втрачає фокус. На відміну від вбудованої в браузер події blur
, в React подія onBlur
bubbles.
onBlurCapture
: Версія onBlur
, яка спрацьовує у фазі захоплення.
onClick
: Функція-обробник MouseEvent
. Спрацьовує при натисканні основної кнопки на вказівному пристрої.
onClickCapture
: Версія onClick
, яка спрацьовує у фазі захоплення.
onCompositionStart
: Функція-обробник CompositionEvent
. Спрацьовує, коли редактор методів введення починає новий сеанс композиції.
onCompositionStartCapture
: Версія onCompositionStart
, яка спрацьовує у фазі захоплення.
onCompositionEnd
: Функція-обробник CompositionEvent
. Спрацьовує, коли редактор методів введення завершує або скасовує сеанс композиції.
onCompositionEndCapture
: Версія onCompositionEnd
, яка спрацьовує у фазі захоплення.
onCompositionUpdate
: Функція-обробник CompositionEvent
. Спрацьовує, коли редактор методу введення отримує новий символ.
onCompositionUpdateCapture
: Версія onCompositionUpdate
, яка спрацьовує у фазі захоплення.
onContextMenu
: Функція-обробник MouseEvent
. Спрацьовує, коли користувач намагається відкрити контекстне меню.
onContextMenuCapture
: Версія onContextMenu
, яка спрацьовує у фазі захоплення.
onCopy
: Функція-обробник ClipboardEvent
. Спрацьовує, коли користувач намагається скопіювати щось у буфер обміну.
onCopyCapture
: Версія onCopy
, яка спрацьовує у фазі захоплення.
onCut
: Функція-обробник ClipboardEvent
. Спрацьовує, коли користувач намагається вирізати щось у буфер обміну.
onCutCapture
: Версія onCut
, яка спрацьовує на етапі захоплення.
onDoubleClick
: Функція-обробник MouseEvent
. Спрацьовує, коли користувач клацає двічі. Відповідає браузеру dblclick
event.
onDoubleClickCapture
: Версія onDoubleClick
, яка спрацьовує у фазі захоплення.
onDrag
: Функція обробника DragEvent
. Спрацьовує, коли користувач щось перетягує.
onDragCapture
: Версія onDrag
, яка спрацьовує у фазі захоплення.
onDragEnd
: Функція DragEvent
обробника . Спрацьовує, коли користувач припиняє щось перетягувати.
onDragEndCapture
: Версія onDragEnd
, яка спрацьовує у фазі захоплення.
onDragEnter
: Функція-обробник DragEvent
. Спрацьовує, коли перетягнутий вміст потрапляє до допустимої цілі скидання.
onDragEnterCapture
: Версія onDragEnter
, яка спрацьовує у фазі захоплення.
onDragOver
: Функція-обробник DragEvent
. Спрацьовує по дійсній цілі скидання під час перетягування на неї перетягнутого вмісту. Ви повинні викликати e.preventDefault()
тут, щоб дозволити перетягування.
onDragOverCapture
: Версія onDragOver
, яка спрацьовує у фазі захоплення.
onDragStart
: Функція-обробник DragEvent
. Спрацьовує, коли користувач починає перетягувати елемент.
onDragStartCapture
: Версія onDragStart
, яка спрацьовує у фазі захоплення.
onDrop
: Функція-обробник DragEvent
. Спрацьовує, коли щось скинуто на допустиму ціль скидання.
onDropCapture
: Версія onDrop
, яка спрацьовує у фазі захоплення.
onFocus
: Функція-обробник FocusEvent
. Спрацьовує, коли елемент отримує фокус. На відміну від вбудованої в браузер події focus
, в React подія onFocus
bubbles.
onFocusCapture
: Версія onFocus
, яка спрацьовує у фазі захоплення.
onGotPointerCapture
: Функція-обробник PointerEvent
. Спрацьовує, коли елемент програмно захоплює покажчик.
onGotPointerCaptureCapture
: Версія onGotPointerCapture
, яка спрацьовує у фазі захоплення.
onKeyDown
: Функція-обробник KeyboardEvent
. Спрацьовує при натисканні клавіші.
onKeyDownCapture
: Версія onKeyDown
, яка спрацьовує у фазі захоплення.
onKeyPress
: Функція-обробник KeyboardEvent
. Застаріла. Використовуйте onKeyDown
або onBeforeInput
замість цього.
onKeyPressCapture
: Версія onKeyPress
, яка спрацьовує у фазі захоплення.
onKeyUp
: Функція-обробник KeyboardEvent
. Спрацьовує при відпусканні клавіші.
onKeyUpCapture
: Версія onKeyUp
, яка спрацьовує у фазі захоплення.
onLostPointerCapture
: Функція-обробник PointerEvent
. Спрацьовує, коли елемент перестає захоплювати покажчик.
onLostPointerCaptureCapture
: Версія onLostPointerCapture
, яка спрацьовує у фазі захоплення.
onMouseDown
: Функція-обробник MouseEvent
. Спрацьовує при натисканні на вказівник.
onMouseDownCapture
: Версія onMouseDown
, яка спрацьовує у фазі захоплення.
onMouseEnter
: Функція-обробник MouseEvent
. Спрацьовує, коли вказівник рухається всередині елемента. Не має фази захоплення. Натомість onMouseLeave
і onMouseEnter
поширюються від елемента, який залишають, до елемента, який вводять.
onMouseLeave
: Функція-обробник MouseEvent
. Спрацьовує, коли вказівник виходить за межі елемента. Не має фази захоплення. Натомість onMouseLeave
та onMouseEnter
поширюються від елемента, який залишають, до елемента, який вводять.
onMouseMove
: Функція-обробник MouseEvent
. Спрацьовує при зміні координат вказівника.
onMouseMoveCapture
: Версія onMouseMove
, яка спрацьовує у фазі захоплення.
onMouseOut
: Функція-обробник MouseEvent
. Спрацьовує при виході покажчика за межі елемента або при переході в дочірній елемент.
onMouseOutCapture
: Версія onMouseOut
, яка спрацьовує у фазі захоплення.
onMouseUp
: Функція-обробник MouseEvent
. Спрацьовує при звільненні покажчика.
onMouseUpCapture
: Версія onMouseUp
, яка спрацьовує у фазі захоплення.
onPointerCancel
: Функція-обробник PointerEvent
. Спрацьовує, коли браузер скасовує взаємодію з вказівником.
onPointerCancelCapture
: Версія onPointerCancel
, яка спрацьовує у фазі захоплення.
onPointerDown
: Функція-обробник PointerEvent
. Спрацьовує, коли вказівник стає активним.
onPointerDownCapture
: Версія onPointerDown
, яка спрацьовує у фазі захоплення.
onPointerEnter
: Функція-обробник PointerEvent
. Спрацьовує, коли покажчик рухається всередині елементу. Не має фази захоплення. Натомість onPointerLeave
та onPointerEnter
поширюються від елемента, який залишають, до елемента, який вводять.
onPointerLeave
: Функція-обробник PointerEvent
. Спрацьовує при виході покажчика за межі елементу. Не має фази захоплення. Натомість onPointerLeave
та onPointerEnter
поширюються від елемента, який залишають, до елемента, який вводять.
onPointerMove
: Функція-обробник PointerEvent
. Спрацьовує при зміні координат вказівника.
onPointerMoveCapture
: Версія onPointerMove
, яка спрацьовує у фазі захоплення.
onPointerOut
: Функція-обробник PointerEvent
. Спрацьовує при виході покажчика за межі елемента, при скасуванні взаємодії покажчика та з деяких інших причин.
onPointerOutCapture
: Версія onPointerOut
, яка спрацьовує у фазі захоплення.
onPointerUp
: Функція-обробник PointerEvent
. Спрацьовує, коли вказівник перестає бути активним.
onPointerUpCapture
: Версія onPointerUp
, яка спрацьовує у фазі захоплення.
onPaste
: Функція-обробник ClipboardEvent
. Спрацьовує, коли користувач намагається вставити щось з буфера обміну.
onPasteCapture
: Версія onPaste
, яка спрацьовує на етапі захоплення.
onScroll
: Функція-обробник Event
. Спрацьовує, коли елемент було прокручено. Ця подія не викликає бульбашки.
onScrollCapture
: Версія onScroll
, яка спрацьовує у фазі захоплення.
onSelect
: Функція-обробник Event
. Спрацьовує після виділення всередині редагованого елемента, як тільки змінюється вхідні дані. React розширює подію onSelect
, щоб вона працювала і для елементів contentEditable={true}
. Крім того, React розширює її, щоб вона спрацьовувала для порожнього виділення та при редагуванні (яке може вплинути на виділення).
onSelectCapture
: Версія onSelect
, яка спрацьовує у фазі захоплення.
onTouchCancel
: Функція TouchEvent
обробника . Спрацьовує, коли браузер скасовує сенсорну взаємодію.
onTouchCancelCapture
: Версія onTouchCancel
, яка спрацьовує у фазі захоплення.
onTouchEnd
: Функція-обробник TouchEvent
. Спрацьовує при видаленні однієї або декількох точок дотику.
onTouchEndCapture
: Версія onTouchEnd
, яка спрацьовує у фазі захоплення.
onTouchMove
: Функція-обробник TouchEvent
. Здійснює переміщення однієї або декількох точок дотику.
onTouchMoveCapture
: Версія onTouchMove
, яка спрацьовує у фазі захоплення.
onTouchStart
: Функція-обробник TouchEvent
. Спрацьовує при встановленні однієї або більше точок дотику.
onTouchStartCapture
: Версія onTouchStart
, яка спрацьовує у фазі захоплення.
onTransitionEnd
: Функція-обробник TransitionEvent
. Спрацьовує при завершенні CSS-переходу.
onTransitionEndCapture
: Версія onTransitionEnd
, яка спрацьовує у фазі захоплення.
onWheel
: Функція-обробник WheelEvent
. Спрацьовує, коли користувач обертає коліщатко.
onWheelCapture
: Версія onWheel
, яка спрацьовує у фазі захоплення.
role
: Рядок. Вказує роль елемента явно для допоміжних технологій.
slot
: Рядок. Вказує ім'я слоту при використанні тіньового DOM. У React еквівалентний шаблон зазвичай досягається передачею JSX в якості пропсів, наприклад, <Layout left={<Sidebar />} right={<Content />} />
. .
spellCheck
: Логічне значення або нуль. Якщо явно встановлено у true
або false
, вмикає або вимикає перевірку правопису.
tabIndex
: Число. Перевизначає поведінку кнопки Tab за замовчуванням. Уникати використання значень, відмінних від -1
і 0
.
title
: Рядок. Вказує текст підказки для елемента.
перекласти
: Або 'yes'
або 'no'
. Передача 'no'
виключає переклад вмісту елемента.
Ви також можете передавати власні атрибути як пропси, наприклад mycustomprop="someValue"
. Це може бути корисно при інтеграції зі сторонніми бібліотеками. Назва користувацького атрибута має складатися з маленьких літер і не повинна починатися з on
. Значення буде перетворено на рядок. Якщо ви передасте null
або undefined
, користувацький атрибут буде вилучено.
Ці події спрацьовують лише для елементів <form>
:
onReset
: Функція-обробник Event
. Спрацьовує при скиданні форми.
onResetCapture
: Версія onReset
, яка спрацьовує у фазі захоплення.
onSubmit
: Функція обробника Event
. Спрацьовує при відправленні форми.
onSubmitCapture
: Версія onSubmit
, яка спрацьовує у фазі захоплення.
Ці події спрацьовують лише для елементів <dialog>
. На відміну від подій браузера, у React вони спливають бульбашкою:
onCancel
: Функція-обробник Event
. Спрацьовує, коли користувач намагається закрити діалог.
onCancelCapture
: Версія onCancel
, яка спрацьовує у фазі захоплення.
onClose
: Функція-обробник Event
. Спрацьовує при закритті діалогу.
onCloseCapture
: Версія onClose
, яка спрацьовує у фазі захоплення.
Ці події спрацьовують лише для елементів <details>
. На відміну від подій браузера, в React вони спливають бульбашкою:
onToggle
: Функція-обробник Event
. Спрацьовує, коли користувач перемикає деталі.
onToggleCapture
: Версія onToggle
, яка спрацьовує у фазі захоплення.
Ці події спрацьовують для елементів <img>
, <iframe>
, <object>
, <embed>
, <link>
і SVG <image>
. На відміну від подій браузера, вони спливають у React:
onLoad
: Функція-обробник Event
. Спрацьовує при завантаженні ресурсу.
onLoadCapture
: Версія onLoad
, яка спрацьовує у фазі захоплення. .
onError
: Функція-обробник Event
. Спрацьовує, коли ресурс не вдалося завантажити.
onErrorCapture
: Версія onError
, яка спрацьовує у фазі захоплення.
Ці події спрацьовують для ресурсів типу <audio>
та <video>
. На відміну від подій браузера, у React вони спливають бульбашкою:
onAbort
: Функція-обробник Event
. Спрацьовує, коли ресурс завантажено не повністю, але не через помилку.
onAbortCapture
: Версія onAbort
, яка спрацьовує у фазі захоплення.
onCanPlay
: Функція-обробник Event
. Спрацьовує, коли даних достатньо для початку відтворення, але недостатньо для відтворення до кінця без буферизації.
onCanPlayCapture
: Версія onCanPlay
, яка спрацьовує у фазі захоплення.
onCanPlayThrough
: Функція-обробник Event
. Спрацьовує, коли є достатньо даних, щоб почати відтворення без буферизації до кінця.
onCanPlayThroughCapture
: Версія onCanPlayThrough
, яка спрацьовує у фазі захоплення.
onDurationChange
: Функція-обробник Event
. Спрацьовує при оновленні тривалості медіафайлу.
onDurationChangeCapture
: Версія onDurationChange
, яка спрацьовує у фазі захоплення.
onEmptied
: Функція-обробник Event
. Спрацьовує, коли носій стає порожнім.
onEmptiedCapture
: Версія onEmptied
, яка спрацьовує у фазі захоплення.
onEncrypted
: Функція-обробник Event
. Спрацьовує, коли браузер зустрічає зашифрований носій.
onEncryptedCapture
: Версія onEncrypted
, яка спрацьовує у фазі захоплення.
onEnded
: Функція-обробник Event
. Спрацьовує, коли відтворення зупиняється, оскільки немає що відтворювати.
onEndedCapture
: Версія onEnded
, яка спрацьовує у фазі захоплення.
onError
: Функція-обробник Event
. Спрацьовує, коли ресурс не вдалося завантажити.
onErrorCapture
: Версія onError
, яка спрацьовує у фазі захоплення.
onLoadedData
: Функція-обробник Event
. Спрацьовує при завантаженні поточного кадру відтворення.
onLoadedDataCapture
: Версія onLoadedData
, яка спрацьовує у фазі захоплення.
onLoadedMetadata
: Функція-обробник Event
. Спрацьовує при завантаженні метаданих.
onLoadedMetadataCapture
: Версія onLoadedMetadata
, яка спрацьовує у фазі захоплення.
onLoadStart
: Функція-обробник Event
. Спрацьовує, коли браузер почав завантажувати ресурс.
onLoadStartCapture
: Версія onLoadStart
, яка спрацьовує у фазі захоплення.
onPause
: Функція-обробник Event
. Спрацьовує, коли носій було призупинено.
onPauseCapture
: Версія onPause
, яка спрацьовує на етапі захоплення.
onPlay
: Функція-обробник Event
. Спрацьовує, коли носій більше не призупинено.
onPlayCapture
: Версія onPlay
, яка спрацьовує у фазі захоплення.
onPlaying
: Функція-обробник Event
. Спрацьовує при запуску або перезапуску відтворення носія.
onPlayingCapture
: Версія onPlaying
, яка спрацьовує у фазі захоплення.
onProgress
: Функція-обробник Event
. Періодично спрацьовує під час завантаження ресурсу.
onProgressCapture
: Версія onProgress
, яка спрацьовує у фазі захоплення.
onRateChange
: Функція-обробник Event
. Спрацьовує при зміні швидкості відтворення.
onRateChangeCapture
: Версія onRateChange
, яка спрацьовує у фазі захоплення.
onResize
: Функція-обробник Event
. Спрацьовує, коли відео змінює розмір.
onResizeCapture
: Версія onResize
, яка спрацьовує у фазі захоплення.
onSeeked
: Функція-обробник Event
. Спрацьовує після завершення операції пошуку.
onSeekedCapture
: Версія onSeeked
, яка спрацьовує у фазі захоплення.
onSeeking
: Функція-обробник Event
. Спрацьовує, коли починається операція пошуку.
onSeekingCapture
: Версія onSeeking
, яка спрацьовує у фазі захоплення.
onStalled
: Функція-обробник Event
. Спрацьовує, коли браузер чекає на дані, але вони не завантажуються.
onStalledCapture
: Версія onStalled
, яка спрацьовує у фазі захоплення.
onSuspend
: Функція-обробник Event
. Спрацьовує, коли завантаження ресурсу було призупинено.
onSuspendCapture
: Версія onSuspend
, яка спрацьовує у фазі захоплення.
onTimeUpdate
: Функція-обробник Event
. Спрацьовує при оновленні поточного часу відтворення.
onTimeUpdateCapture
: Версія onTimeUpdate
, яка спрацьовує у фазі захоплення.
onVolumeChange
: Функція-обробник Event
. Спрацьовує при зміні гучності.
onVolumeChangeCapture
: Версія onVolumeChange
, яка спрацьовує у фазі захоплення.
onWaiting
: Функція-обробник Event
. Спрацьовує, коли відтворення зупинено через тимчасову відсутність даних.
onWaitingCapture
: Версія onWaiting
, яка спрацьовує у фазі захоплення.
Застереження
- Неможливо передати одночасно
дітям
та dangerouslySetInnerHTML
.
- Деякі події (наприклад,
onAbort
та onLoad
) не відображаються у браузері, але відображаються у React.
посилання
на функцію зворотного виклику
Замість об'єкта ref (як той, що повертається useRef
) ви можете передати функцію до атрибуту ref
.
<div ref={(node) => console.log(node)} />
Дивіться приклад використання ref
callback.
Коли DOM-вузол <div>
буде додано на екран, React викличе ваш зворотній виклик ref
з DOM-вузлом node
як аргумент. Коли цей вузол <div>
DOM буде видалено, React викличе ваш зворотній виклик ref
з null
.
React також викликатиме ваш зворотний виклик ref
щоразу, коли ви передаєте зворотний виклик different ref
. У наведеному вище прикладі (node) => { ... }
- це інша функція для кожного рендерингу. При повторному рендерингу вашого компонента функція previous буде викликана з null
в якості аргументу, а функція next буде викликана з вузлом DOM.
Параметри
вузол
: Вузол DOM або null
. React передасть вам вузол DOM, коли посилання буде приєднано, і null
, коли посилання буде від'єднано. Якщо ви не передасте однакове посилання на функцію для зворотного виклику ref
при кожному рендері, зворотний виклик буде тимчасово від'єднуватися і знову приєднуватися під час кожного повторного рендерингу компонента.
Повернення
Не повертати нічого зі зворотного виклику ref
.
Об'єкт події React
Ваші обробники подій отримають об'єкт події React. Його також іноді називають "синтетичною подією".
<button onClick={e => {
console.log(e); // React event object
}} />
Відповідає тому самому стандарту, що й базові події DOM, але виправляє деякі невідповідності браузерів.
Деякі події React не відображаються безпосередньо у власні події браузера. Наприклад, у onMouseLeave
, e.nativeEvent
буде вказувати на подію mouseout
. Конкретне відображення не є частиною публічного API і може змінитися в майбутньому. Якщо вам з якихось причин потрібна базова подія браузера, прочитайте її з e.nativeEvent
.
Властивості
Об'єкти подій React реалізують деякі стандартні Event
властивості:
bubbles
: Булеве значення. Повертає, чи подія пузириться через DOM.
cancelable
: Булеве значення. Повертає, чи можна скасувати подію.
currentTarget
: Вузол DOM. Повертає вузол, до якого приєднано поточний обробник у дереві React.
defaultPrevented
: Булевий вираз. Повертає, чи було викликано preventDefault
.
eventPhase
: Число. Повертає, у якій фазі зараз перебуває подія.
isTrusted
: Булеве значення. Повертає, чи була подія ініційована користувачем. .
target
: Вузол DOM. Повертає вузол, на якому відбулася подія (який може бути віддаленим нащадком).
timeStamp
: Число. Повертає час, коли відбулася подія.
Додатково, об'єкти подій React надають такі властивості:
nativeEvent
: A DOM Event
. Оригінальний об'єкт події браузера. .
Методи
Об'єкти подій React реалізують деякі стандартні Event
методи:
Додатково, об'єкти подій React надають такі методи:
isDefaultPrevented()
: Повертає булеве значення, яке вказує, чи було викликано preventDefault
.
isPropagationStopped()
: Повертає булеве значення, яке вказує, чи було викликано stopPropagation
.
persist()
: Не використовується з React DOM. У React Native викличте цей метод, щоб прочитати властивості події після події. .
isPersistent()
: Не використовується з React DOM. У React Native повертає, чи було викликано persist
.
Застереження
- Значення
currentTarget
, eventPhase
, target
та type
відображають значення, які очікує ваш React-код. Під капотом React приєднує обробники подій в корені, але це не відображається в об'єктах подій React. Наприклад, e.currentTarget
може відрізнятися від базового e.nativeEvent.currentTarget
. Для полізаповнених подій e.type
(тип події React) може відрізнятися від e.nativeEvent.type
(базовий тип).
AnimationEvent
функція-обробник
Тип обробника подій для подій CSS-анімації.
<div
onAnimationStart={e => console.log('onAnimationStart')}
onAnimationIteration={e => console.log('onAnimationIteration')}
onAnimationEnd={e => console.log('onAnimationEnd')}
/>
Параметр
ClipboardEvent
функція-обробник
Тип обробника подій для подій Clipboard API.
<input
onCopy={e => console.log('onCopy')}
onCut={e => console.log('onCut')}
onPaste={e => console.log('onPaste')}
/>
Параметри
CompositionEvent
функція-обробник
Тип обробника подій для подій редактора методів вводу (IME).
<input
onCompositionStart={e => console.log('onCompositionStart')}
onCompositionUpdate={e => console.log('onCompositionUpdate')}
onCompositionEnd={e => console.log('onCompositionEnd')}
/>
Параметри
DragEvent
функція-обробник
Тип обробника подій для подій HTML Drag and Drop API.
<>
<div
draggable={true}
onDragStart={e => console.log('onDragStart')}
onDragEnd={e => console.log('onDragEnd')}
>
Drag source
</div>
<div
onDragEnter={e => console.log('onDragEnter')}
onDragLeave={e => console.log('onDragLeave')}
onDragOver={e => { e.preventDefault(); console.log('onDragOver'); }}
onDrop={e => console.log('onDrop')}
>
Drop target
</div>
</>
Параметри
e
: Об'єкт події React з такими додатковими DragEvent
властивостями:
Він також включає успадковані MouseEvent
властивості:
Він також включає успадковані UIEvent
властивості:
FocusEvent
функція-обробник
Тип обробника подій для подій фокусу.
<input
onFocus={e => console.log('onFocus')}
onBlur={e => console.log('onBlur')}
/>
Дивіться приклад.
Параметри
Event
функція-обробник
Тип обробника подій для типових подій.
Параметри
e
: Об'єкт події React без додаткових властивостей.
Тип обробника події для події onBeforeInput
.
<input onBeforeInput={e => console.log('onBeforeInput')} />
KeyboardEvent
функція-обробник
Тип обробника подій для подій клавіатури.
<input
onKeyDown={e => console.log('onKeyDown')}
onKeyUp={e => console.log('onKeyUp')}
/>
Дивіться приклад.
Параметри
MouseEvent
функція-обробник
Тип обробника подій для подій миші.
<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')}
/>
Дивіться приклад.
Параметри
PointerEvent
функція-обробник
Тип обробника подій для подій вказівника.
<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')}
/>
Дивіться приклад.
Параметри
e
: Об'єкт події React з такими додатковими PointerEvent
властивостями:
Він також включає успадковані MouseEvent
властивості:
Він також включає успадковані UIEvent
властивості:
TouchEvent
функція-обробник
Тип обробника подій для подій дотику.
<div
onTouchStart={e => console.log('onTouchStart')}
onTouchMove={e => console.log('onTouchMove')}
onTouchEnd={e => console.log('onTouchEnd')}
onTouchCancel={e => console.log('onTouchCancel')}
/>
Параметри
TransitionEvent
функція-обробник
Тип обробника подій для подій переходу CSS.
<div
onTransitionEnd={e => console.log('onTransitionEnd')}
/>
Параметри
UIEvent
функція-обробник
Тип обробника подій для типових подій інтерфейсу
<div
onScroll={e => console.log('onScroll')}
/>
Параметри
e
: Об'єкт події React з такими додатковими UIEvent
властивостями:
WheelEvent
функція-обробник
Тип обробника події для події onWheel
.
<div
onWheel={e => console.log('onWheel')}
/>
Параметри
e
: Об'єкт події React з такими додатковими WheelEvent
властивостями:
Він також включає успадковані MouseEvent
властивості:
Він також включає успадковані UIEvent
властивості:
Використання
Застосування стилів CSS
У React ви вказуєте клас CSS за допомогою className
. Це працює як атрибут class
в HTML:
<img className="avatar" />
Потім ви пишете правила CSS для нього в окремому файлі CSS:
/* In your CSS */
.avatar {
border-radius: 50%;
}
React не визначає, як додавати CSS файли. У найпростішому випадку ви додаєте тег <link>
до вашого HTML. Якщо ви використовуєте інструмент збірки або фреймворк, зверніться до його документації, щоб дізнатися, як додати CSS-файл до вашого проекту.
Іноді значення стилів залежать від даних. Використовуйте атрибут style
для динамічної передачі деяких стилів:
<img
className="avatar"
style={{
width: user.imageSize,
height: user.imageSize
}}
/>
У наведеному прикладі style={{}}
- це не спеціальний синтаксис, а звичайний об'єкт {}
всередині фігурних дужок style={ }
JSX. Ми рекомендуємо використовувати атрибут style
лише тоді, коли ваші стилі залежать від змінних JavaScript.