@z-cloud/virtual-vanilla
Version:
提供跨平台(浏览器,小程序)的虚拟列表公共基类
52 lines • 1.84 kB
TypeScript
import { ScrollAlignment, BasicVirtualizerOptions, VirtualItem, Rect } from './typings';
/**
* 虚拟列表基类
*/
export declare class BasicVirtualizer<TOptions = Record<string, any>> {
options: TOptions & Required<BasicVirtualizerOptions>;
items: VirtualItem[];
scrollElementRect?: Rect;
scrollOffset?: number;
scrolling: boolean;
range?: {
startIndex: number;
endIndex: number;
};
unsubscribes: Array<void | (() => void)>;
dynamicSizeCache: Map<number, number>;
pendingDynamicSizeIndexes: number[];
setOptions(options: TOptions & BasicVirtualizerOptions): void;
dynamicMode(): boolean;
setScrollElementRect(rect: Rect): void;
/**
* 获取每条lane的最后一个item 并返回end值最小的那一个
* @param items
* @param index
*/
private getLastItemForLane;
/**
* 所有虚拟项数据
*/
private geItemsWithtMemo;
getItems(): VirtualItem[];
private getVirtualItemsWithMemo;
getVirtualItems(): VirtualItem[];
private getVirtualIndexesWithMemo;
getVirtualIndexes(): number[];
getScrollOffset(): number;
getSize(): number;
getTotalSize(): number;
calculateStartIndex(scrollOffset: number): number;
private calculateRangeWithMemo;
private calculateRangeIndex;
getOffsetForAlign(offset: number, align?: ScrollAlignment, itemSize?: number): number;
getOffsetForIndex(index: number, align?: ScrollAlignment): number;
private notifyWithMemo;
notify(): void;
/**
* 清除指定函数的缓存
* @param names 需要清除缓存的函数名称
*/
clearFnMemo(names: ('notifyWithMemo' | 'calculateRangeWithMemo' | 'getVirtualItemsWithMemo' | 'getVirtualIndexesWithMemo' | 'geItemsWithtMemo')[]): void;
}
//# sourceMappingURL=basic.d.ts.map