useDebugValue¶
useDebugValue
- это хук React, который позволяет добавить метку к пользовательскому хуку в React DevTools.
1 |
|
Описание¶
useDebugValue(value, format?)
¶
Вызывает useDebugValue
на верхнем уровне вашего пользовательского хука для отображения читаемого отладочного значения:
1 2 3 4 5 6 7 |
|
Параметры¶
value
: Значение, которое вы хотите отобразить в React DevTools. Оно может иметь любой тип.- опционально
format
: Функция форматирования. При осмотре компонента React DevTools вызовет функцию форматирования сvalue
в качестве аргумента, а затем отобразит возвращенное форматированное значение (которое может иметь любой тип). Если вы не укажете функцию форматирования, будет отображено исходноеvalue
.
Возвращает¶
useDebugValue
ничего не возвращает.
Использование¶
Добавление метки к пользовательскому крючку¶
Вызовите useDebugValue
на верхнем уровне вашего пользовательского хука, чтобы отобразить читаемое отладочное значение для React DevTools.
1 2 3 4 5 6 7 |
|
Это дает компонентам, вызывающим useOnlineStatus
, метку типа OnlineStatus: "Online"
при их осмотре:
Без вызова useDebugValue
отображались бы только базовые данные (в данном примере true
).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Отладка
Не добавляйте значения отладки в каждый пользовательский хук. Это наиболее ценно для пользовательских хуков, которые являются частью общих библиотек и имеют сложную внутреннюю структуру данных, которую трудно проверить.
Откладывание форматирования отладочного значения¶
Вы также можете передать функцию форматирования в качестве второго аргумента в useDebugValue
:
1 |
|
Ваша функция форматирования получит отладочное значение в качестве параметра и должна вернуть форматированное отображаемое значение. Когда ваш компонент будет проверен, React DevTools вызовет эту функцию и отобразит ее результат.
Это позволяет вам избежать выполнения потенциально дорогостоящей логики форматирования, пока компонент не будет проверен. Например, если date
является значением Date
, это позволяет избежать вызова toDateString()
для него при каждом рендере.
Источник — https://react.dev/reference/react/useDebugValue