// ============================================================ // useDebounce — 防抖 hook // ============================================================ import { useState, useEffect } from 'react' export function useDebounce(value: T, delay = 300): T { const [debouncedValue, setDebouncedValue] = useState(value) useEffect(() => { const handler = setTimeout(() => setDebouncedValue(value), delay) return () => clearTimeout(handler) }, [value, delay]) return debouncedValue }