1import {
2 useBoolean,
3 useLatest,
4 useStorage,
5 useThrottle,
6 useDebounce,
7 useVirtualList,
8 useExcelExport,
9} from '@resin-hooks/core';
10
11function App() {
12 // 使用 useBoolean
13 const [value, { toggle }] = useBoolean(false);
14
15 // 使用 useLatest
16 const latestValue = useLatest(value);
17
18 // 使用 useStorage(localStorage 持久化)
19 const [token, setToken, removeToken] = useStorage<string>({
20 key: 'auth_token',
21 type: 'local',
22 defaultValue: '',
23 });
24
25 // 使用 useThrottle
26 const { throttleFn, cancel } = useThrottle((val) => console.log(val), {
27 interval: 500,
28 });
29
30 // 使用 useDebounce
31 const { debounceFn } = useDebounce((val) => fetchSearch(val), {
32 delay: 300,
33 });
34
35 // 使用 useVirtualList
36 const { list, containerProps, totalHeight } = useVirtualList(data, {
37 containerHeight: 400,
38 itemHeight: 50,
39 });
40
41 // 使用 useExcelExport
42 const { exportExcel, progress, loading } = useExcelExport({
43 fileName: 'data.xlsx',
44 headersMap: { id: 'ID', name: '姓名' },
45 });
46
47 return <div>...</div>;
48}