gitextract_8eg352yw/ ├── .babelrc ├── .coveralls.yml ├── .cursor/ │ └── rules/ │ ├── demo.mdc │ ├── docs.mdc │ ├── git.mdc │ ├── project.mdc │ ├── testing.mdc │ └── typescript.mdc ├── .editorconfig ├── .github/ │ ├── PULL_REQUEST_TEMPLATE/ │ │ └── pr_cn.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── comment-when-needs-more-info.yml │ ├── gitleaks.yml │ ├── issue-close-require.yml │ ├── issue-reply.yml │ ├── pkg.pr.new.yml │ ├── static.yml │ └── test.yml ├── .gitignore ├── .gitleaks.toml ├── .husky/ │ ├── commit-msg │ └── pre-commit ├── .npmrc ├── .travis.yml ├── CONTRIBUTING.MD ├── CONTRIBUTING.zh-CN.MD ├── LICENSE ├── README.md ├── README.zh-CN.md ├── SECURITY.md ├── biome.json ├── config/ │ ├── config.ts │ └── hooks.ts ├── docs/ │ ├── guide/ │ │ ├── blog/ │ │ │ ├── function.en-US.md │ │ │ ├── function.zh-CN.md │ │ │ ├── hmr.en-US.md │ │ │ ├── hmr.zh-CN.md │ │ │ ├── ssr.en-US.md │ │ │ ├── ssr.zh-CN.md │ │ │ ├── strict.en-US.md │ │ │ └── strict.zh-CN.md │ │ ├── dom.en-US.md │ │ ├── dom.zh-CN.md │ │ ├── index.en-US.md │ │ ├── index.zh-CN.md │ │ ├── upgrade.en-US.md │ │ └── upgrade.zh-CN.md │ ├── index.en-US.md │ └── index.zh-CN.md ├── example/ │ └── .gitkeep ├── gulpfile.js ├── package.json ├── packages/ │ ├── hooks/ │ │ ├── gulpfile.js │ │ ├── package.json │ │ ├── src/ │ │ │ ├── createDeepCompareEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── createUpdateEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── createUseStorageState/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── global.d.ts │ │ │ ├── index.spec.ts │ │ │ ├── index.ts │ │ │ ├── useAntdTable/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── cache.tsx │ │ │ │ │ ├── form.tsx │ │ │ │ │ ├── init.tsx │ │ │ │ │ ├── ready.tsx │ │ │ │ │ ├── table.tsx │ │ │ │ │ └── validate.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── types.ts │ │ │ ├── useAsyncEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useBoolean/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useClickAway/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ ├── demo3.tsx │ │ │ │ │ ├── demo4.tsx │ │ │ │ │ ├── demo5.tsx │ │ │ │ │ └── demo6.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useControllableValue/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useCookieState/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useCountDown/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useCounter/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useCreation/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useDebounce/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── debounceOptions.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useDebounceEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useDebounceFn/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useDeepCompareEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ └── index.zh-CN.md │ │ │ ├── useDeepCompareLayoutEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ └── index.zh-CN.md │ │ │ ├── useDocumentVisibility/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useDrag/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── useDrop/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useDynamicList/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ ├── demo3.tsx │ │ │ │ │ └── demo4.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useEventEmitter/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useEventListener/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useEventTarget/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useExternal/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useFavicon/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.tsx │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useFocusWithin/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ └── index.zh-CN.md │ │ │ ├── useFullscreen/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ ├── demo3.tsx │ │ │ │ │ └── demo4.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useFusionTable/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── cache.tsx │ │ │ │ │ ├── form.tsx │ │ │ │ │ ├── init.tsx │ │ │ │ │ ├── table.tsx │ │ │ │ │ └── validate.tsx │ │ │ │ ├── fusionAdapter.ts │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── types.ts │ │ │ ├── useGetState/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useHistoryTravel/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useHover/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useInViewport/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useInfiniteScroll/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── default.tsx │ │ │ │ │ ├── mutate.tsx │ │ │ │ │ ├── pagination.tsx │ │ │ │ │ ├── reload.tsx │ │ │ │ │ ├── scroll.tsx │ │ │ │ │ └── scrollTop.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── types.ts │ │ │ ├── useInterval/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useIsomorphicLayoutEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useKeyPress/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ ├── demo3.tsx │ │ │ │ │ ├── demo4.tsx │ │ │ │ │ ├── demo5.tsx │ │ │ │ │ ├── demo6.tsx │ │ │ │ │ ├── demo7.tsx │ │ │ │ │ └── demo8.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useLatest/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useLocalStorageState/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ ├── demo3.tsx │ │ │ │ │ └── demo4.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useLockFn/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useLongPress/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useMap/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useMemoizedFn/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useMount/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useMouse/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useMutationObserver/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useNetwork/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── usePagination/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ ├── demo3.tsx │ │ │ │ │ └── demo4.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── types.ts │ │ │ ├── usePrevious/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useRafInterval/ │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── index.spec.ts │ │ │ │ │ └── node.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useRafState/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useRafTimeout/ │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── index.spec.ts │ │ │ │ │ └── node.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useReactive/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ ├── demo3.tsx │ │ │ │ │ ├── demo4.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useRequest/ │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── index.spec.ts │ │ │ │ │ ├── useAutoRunPlugin.spec.ts │ │ │ │ │ ├── useCachePlugin.spec.tsx │ │ │ │ │ ├── useDebouncePlugin.spec.ts │ │ │ │ │ ├── useLoadingDelayPlugin.spec.ts │ │ │ │ │ ├── usePollingPlugin.spec.ts │ │ │ │ │ ├── useRefreshOnWindowFocusPlugin.spec.ts │ │ │ │ │ ├── useRetryPlugin.spec.ts │ │ │ │ │ └── useThrottlePlugin.spec.ts │ │ │ │ ├── doc/ │ │ │ │ │ ├── basic/ │ │ │ │ │ │ ├── basic.en-US.md │ │ │ │ │ │ ├── basic.zh-CN.md │ │ │ │ │ │ └── demo/ │ │ │ │ │ │ ├── cancel.tsx │ │ │ │ │ │ ├── default.tsx │ │ │ │ │ │ ├── lifeCycle.tsx │ │ │ │ │ │ ├── manual-run.tsx │ │ │ │ │ │ ├── manual-runAsync.tsx │ │ │ │ │ │ ├── mutate.tsx │ │ │ │ │ │ ├── params.tsx │ │ │ │ │ │ └── refresh.tsx │ │ │ │ │ ├── cache/ │ │ │ │ │ │ ├── cache.en-US.md │ │ │ │ │ │ ├── cache.zh-CN.md │ │ │ │ │ │ └── demo/ │ │ │ │ │ │ ├── cacheKey.tsx │ │ │ │ │ │ ├── clearCache.tsx │ │ │ │ │ │ ├── params.tsx │ │ │ │ │ │ ├── setCache.tsx │ │ │ │ │ │ ├── share.tsx │ │ │ │ │ │ └── staleTime.tsx │ │ │ │ │ ├── debounce/ │ │ │ │ │ │ ├── debounce.en-US.md │ │ │ │ │ │ ├── debounce.zh-CN.md │ │ │ │ │ │ └── demo/ │ │ │ │ │ │ └── debounce.tsx │ │ │ │ │ ├── index/ │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ ├── default.tsx │ │ │ │ │ │ │ └── manual.tsx │ │ │ │ │ │ ├── index.en-US.md │ │ │ │ │ │ └── index.zh-CN.md │ │ │ │ │ ├── loadingDelay/ │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ └── loadingDelay.tsx │ │ │ │ │ │ ├── loadingDelay.en-US.md │ │ │ │ │ │ └── loadingDelay.zh-CN.md │ │ │ │ │ ├── polling/ │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ ├── polling.tsx │ │ │ │ │ │ │ └── pollingError.tsx │ │ │ │ │ │ ├── polling.en-US.md │ │ │ │ │ │ └── polling.zh-CN.md │ │ │ │ │ ├── ready/ │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ ├── manualReady.tsx │ │ │ │ │ │ │ └── ready.tsx │ │ │ │ │ │ ├── ready.en-US.md │ │ │ │ │ │ └── ready.zh-CN.md │ │ │ │ │ ├── refreshDeps/ │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ ├── refreshDeps.tsx │ │ │ │ │ │ │ └── refreshDepsAction.tsx │ │ │ │ │ │ ├── refresyDeps.en-US.md │ │ │ │ │ │ └── refresyDeps.zh-CN.md │ │ │ │ │ ├── refreshOnWindowFocus/ │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ └── refreshOnWindowFocus.tsx │ │ │ │ │ │ ├── refreshOnWindowFocus.en-US.md │ │ │ │ │ │ └── refreshOnWindowFocus.zh-CN.md │ │ │ │ │ ├── retry/ │ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ │ └── retry.tsx │ │ │ │ │ │ ├── retry.en-US.md │ │ │ │ │ │ └── retry.zh-CN.md │ │ │ │ │ └── throttle/ │ │ │ │ │ ├── demo/ │ │ │ │ │ │ └── throttle.tsx │ │ │ │ │ ├── throttle.en-US.md │ │ │ │ │ └── throttle.zh-CN.md │ │ │ │ ├── index.ts │ │ │ │ └── src/ │ │ │ │ ├── Fetch.ts │ │ │ │ ├── plugins/ │ │ │ │ │ ├── useAutoRunPlugin.ts │ │ │ │ │ ├── useCachePlugin.ts │ │ │ │ │ ├── useDebouncePlugin.ts │ │ │ │ │ ├── useLoadingDelayPlugin.ts │ │ │ │ │ ├── usePollingPlugin.ts │ │ │ │ │ ├── useRefreshOnWindowFocusPlugin.ts │ │ │ │ │ ├── useRetryPlugin.ts │ │ │ │ │ └── useThrottlePlugin.ts │ │ │ │ ├── types.ts │ │ │ │ ├── useRequest.ts │ │ │ │ ├── useRequestImplement.ts │ │ │ │ └── utils/ │ │ │ │ ├── cache.ts │ │ │ │ ├── cachePromise.ts │ │ │ │ ├── cacheSubscribe.ts │ │ │ │ ├── isDocumentVisible.ts │ │ │ │ ├── isOnline.ts │ │ │ │ ├── limit.ts │ │ │ │ ├── subscribeFocus.ts │ │ │ │ └── subscribeReVisible.ts │ │ │ ├── useResetState/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useResponsive/ │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── index.spec.ts.snap │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useSafeState/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useScroll/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useSelections/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useSessionStorageState/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useSet/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useSetState/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useSize/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.tsx │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useTextSelection/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ ├── demo2.tsx │ │ │ │ │ └── demo3.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useTheme/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useThrottle/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ ├── index.zh-CN.md │ │ │ │ └── throttleOptions.ts │ │ │ ├── useThrottleEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useThrottleFn/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useTimeout/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useTitle/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useToggle/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useTrackedEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useUnmount/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useUnmountedRef/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.tsx │ │ │ │ └── index.zh-CN.md │ │ │ ├── useUpdate/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useUpdateEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useUpdateLayoutEffect/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useVirtualList/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ ├── demo1.tsx │ │ │ │ │ └── demo2.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useWebSocket/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ ├── useWhyDidYouUpdate/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── index.spec.ts │ │ │ │ ├── demo/ │ │ │ │ │ └── demo1.tsx │ │ │ │ ├── index.en-US.md │ │ │ │ ├── index.ts │ │ │ │ └── index.zh-CN.md │ │ │ └── utils/ │ │ │ ├── __tests__/ │ │ │ │ └── index.spec.ts │ │ │ ├── createEffectWithTarget.ts │ │ │ ├── depsAreSame.ts │ │ │ ├── depsEqual.ts │ │ │ ├── domTarget.ts │ │ │ ├── getDocumentOrShadow.ts │ │ │ ├── index.ts │ │ │ ├── isAppleDevice.ts │ │ │ ├── isBrowser.ts │ │ │ ├── isDev.ts │ │ │ ├── lodash-polyfill.ts │ │ │ ├── noop.ts │ │ │ ├── rect.ts │ │ │ ├── testingHelpers.ts │ │ │ ├── tests.tsx │ │ │ ├── useDeepCompareWithTarget.ts │ │ │ ├── useEffectWithTarget.ts │ │ │ ├── useIsomorphicLayoutEffectWithTarget.ts │ │ │ └── useLayoutEffectWithTarget.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.pro.json │ │ ├── vitest.config.ts │ │ └── webpack.config.js │ └── use-url-state/ │ ├── README.md │ ├── __tests__/ │ │ ├── browser.spec.tsx │ │ ├── router.spec.tsx │ │ └── setup.tsx │ ├── demo/ │ │ ├── demo1.tsx │ │ ├── demo2.tsx │ │ ├── demo3.tsx │ │ └── demo4.tsx │ ├── gulpfile.js │ ├── package.json │ ├── src/ │ │ └── index.ts │ ├── tsconfig.json │ ├── tsconfig.pro.json │ ├── use-url-state.en-US.md │ ├── use-url-state.zh-CN.md │ ├── vitest.config.ts │ └── webpack.config.js ├── pnpm-workspace.yaml ├── public/ │ ├── style.css │ └── useExternal/ │ ├── bootstrap-badge.css │ └── test-external-script.js ├── scripts/ │ └── build-with-relative-paths.js ├── tsconfig.base.json ├── tsconfig.pro.json ├── umd.html ├── vitest.config.ts └── webpack.common.js