use-state-history
use-state-history
상태의 변경 이력(history)을 기록하고 되돌리기(back)/앞으로(forward)/초기화(reset)할 수 있게 해 주는 훅이에요.
출처: 문서
본문
사용법 (Usage)
useStateHistory 훅은 초기 값과 함께 사용하며, 현재 값(value), 핸들러들(handlers), 이력(history)을 배열로 반환해요:
import { Button, Code, Group, Text } from '@mantine/core';
import { useStateHistory } from '@mantine/hooks';
function Demo() {
const [value, handlers, history] = useStateHistory(1);
return (
<>
Current value: {value}
handlers.set(Math.ceil(Math.random() * 100) + 1)}>Set value
handlers.back()}>Back
handlers.forward()}>Forward
handlers.reset()}>Reset
{JSON.stringify(history, null, 2)}
);
}
정의 (Definition)
UseStateHistoryHandlers와 UseStateHistoryValue 인터페이스는 @mantine/hooks 패키지에서 내보내져요:
interface UseStateHistoryHandlers {
set: (value: T) => void;
back: (steps?: number) => void;
forward: (steps?: number) => void;
reset: () => void;
}
interface UseStateHistoryValue {
history: T[];
current: number;
}
type UseStateHistoryReturnValue = [
T,
UseStateHistoryHandlers,
UseStateHistoryValue,
];
function useStateHistory(initialValue: T): UseStateHistoryReturnValue;
내보내는 타입 (Exported types)
UseStateHistoryHandlers, UseStateHistoryReturnValue, 그리고 UseStateHistoryValue 타입은 @mantine/hooks에서 내보내져요:
import type { UseStateHistoryHandlers, UseStateHistoryReturnValue, UseStateHistoryValue } from '@mantine/hooks';