import { useRef, useCallback } from 'react'; import { useDidShow } from '@tarojs/taro'; /** * 带节流的 useDidShow — 距离上次执行不足 intervalMs 毫秒时跳过。 * 返回手动强制刷新的 trigger 函数。 */ export function useThrottledDidShow( fn: () => void, intervalMs = 5000, ): { trigger: () => void } { const lastRun = useRef(0); const fnRef = useRef(fn); fnRef.current = fn; useDidShow(() => { const now = Date.now(); if (now - lastRun.current >= intervalMs) { lastRun.current = now; fnRef.current(); } }); const trigger = useCallback(() => { lastRun.current = Date.now(); fnRef.current(); }, []); return { trigger }; }