UNPKG

@z-cloud/virtual-taro

Version:

一个基于React + TS开发的虚拟列表,支持瀑布流、grid的组件。

32 lines (31 loc) 926 B
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const react = require("react"); const reactDom = require("react-dom"); const virtualMini = require("@z-cloud/virtual-mini"); const useIsomorphicLayoutEffect = react.useLayoutEffect; function useVirualizer({ onReady, onChange, scrollMargin, ...props }) { const rerender = react.useReducer(() => ({}), {})[1]; const options = { scrollMargin: scrollMargin ?? 0, ...props, onChange: (scrolling) => { if (scrolling) { reactDom.flushSync(rerender); } else { rerender(); } onChange == null ? void 0 : onChange(scrolling); } }; const [virtualizer] = react.useState(() => new virtualMini.MiniVirtualizer(options)); virtualizer.setOptions(options); return virtualizer; } exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect; exports.useVirualizer = useVirualizer;