@z-cloud/virtual-taro
Version:
一个基于React + TS开发的虚拟列表,支持瀑布流、grid的组件。
32 lines (31 loc) • 926 B
JavaScript
;
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;