useDebugValue
useDebugValue
๋ React DevTools์์ ์ปค์คํ
ํ
์ ๋ผ๋ฒจ์ ์ถ๊ฐํ ์ ์๊ฒ ํด์ฃผ๋ React Hook์
๋๋ค.
useDebugValue(value, format?)
๋ ํผ๋ฐ์ค
useDebugValue(value, format?)
์ฝ์ ์ ์๋ ๋๋ฒ๊ทธ ๊ฐ์ ํ์ํ๊ธฐ ์ํด ์ปค์คํ
Hook์ ์ต์์ ๋ ๋ฒจ์์ useDebugValue
๋ฅผ ํธ์ถํ์ธ์.
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
์๋์์ ๋ ๋ง์ ์์๋ฅผ ํ์ธํด ๋ณด์ธ์.
๋งค๊ฐ๋ณ์
value
: React DevTools์ ํ์ํ๊ณ ์ถ์ ๊ฐ์ ๋๋ค. ์ด๋ค ํ์ ์ด๋ ๋ ์ ์์ต๋๋ค.- ์ ํ์ฌํญ
format
: ํฌ๋งทํ ํจ์์ ๋๋ค. ์ปดํฌ๋ํธ๊ฐ ๊ฒ์ฌ๋ ๋, React DevTools๋value
๋ฅผ ์ธ์๋ก ํฌ๋งทํ ํจ์๋ฅผ ํธ์ถํ๊ณ , ํฌ๋งทํ ํจ์๊ฐ ๋ฐํํ ํฌ๋งทํ ๋ ๊ฐ์ ํ์ํฉ๋๋ค. (ํฌ๋งทํ ๋ ๊ฐ์ ์ด๋ค ํ์ ์ด๋ ๋ ์ ์์ต๋๋ค.) ํฌ๋งทํ ํจ์๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด, ์๋์value
๊ฐ ํ์๋ฉ๋๋ค.
๋ฐํ๊ฐ
useDebugValue
๋ ์๋ฌด๊ฒ๋ ๋ฐํํ์ง ์์ต๋๋ค.
์ฌ์ฉ๋ฒ
์ปค์คํ Hook์ ๋ผ๋ฒจ ์ถ๊ฐํ๊ธฐ
์ฝ์ ์ ์๋ ๋๋ฒ๊ทธ ๊ฐ์ ํ์ํ๊ธฐ ์ํด ์ปค์คํ
Hook์ ์ต์์ ๋ ๋ฒจ์์ useDebugValue
๋ฅผ ํธ์ถํ์ธ์.
import { useDebugValue } from 'react';
function useOnlineStatus() {
// ...
useDebugValue(isOnline ? 'Online' : 'Offline');
// ...
}
์ด๋ ๊ฒ ํ๋ฉด useOnlineStatus
๋ฅผ ํธ์ถํ๋ ์ปดํฌ๋ํธ๋ฅผ ๊ฒ์ฌํ ๋, OnlineStatus: "Online"
์ ๊ฐ์ ๋ผ๋ฒจ์ด ๋ถ์ต๋๋ค.
useDebugValue
๋ฅผ ํธ์ถํ์ง ์์ผ๋ฉด, ๊ธฐ๋ณธ ๋ฐ์ดํฐ(์ด ์์์์๋ true
)๋ง ํ์๋ฉ๋๋ค.
import { useSyncExternalStore, useDebugValue } from 'react'; export function useOnlineStatus() { const isOnline = useSyncExternalStore(subscribe, () => navigator.onLine, () => true); useDebugValue(isOnline ? 'Online' : 'Offline'); return isOnline; } function subscribe(callback) { window.addEventListener('online', callback); window.addEventListener('offline', callback); return () => { window.removeEventListener('online', callback); window.removeEventListener('offline', callback); }; }
๋๋ฒ๊ทธ ๊ฐ์ ํฌ๋งทํ ์ง์ฐํ๊ธฐ
useDebugValue
์ ๋ ๋ฒ์งธ ์ธ์๋ก ํฌ๋งทํ
ํจ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
useDebugValue(date, date => date.toDateString());
ํฌ๋งทํ ํจ์๋ ๋๋ฒ๊ทธ ๊ฐ์ ์ธ์๋ก ๋ฐ๊ณ , ํฌ๋งทํ ๋ ํ์ ๊ฐ์ ๋ฐํํด์ผ ํฉ๋๋ค. ์ปดํฌ๋ํธ๊ฐ ๊ฒ์ฌ๋ ๋, React DevTools๋ ์ด ํจ์๋ฅผ ํธ์ถํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ์ํฉ๋๋ค.
์ด๋ ์ปดํฌ๋ํธ๊ฐ ์ค์ ๋ก ๊ฒ์ฌ๋ ๋๊น์ง ๋์ ๋น์ฉ์ด ๋ค ์ ์๋ ํฌ๋งทํ
๋ก์ง์ ์คํํ์ง ์๋๋ก ํด์ค๋๋ค. ์๋ฅผ ๋ค์ด, date
๊ฐ Date ๊ฐ์ด๋ผ๋ฉด, ์ด๋ ๋ ๋๋ง๋ง๋ค toDateString()
์ ํธ์ถํ๋ ๊ฒ์ ํผํ ์ ์์ต๋๋ค.