--- category: Utilities --- # useOffsetPagination Reactive offset pagination. ## Usage ```ts import { useOffsetPagination } from '@vueuse/core'; function fetchData({ currentPage, currentPageSize, }: { currentPage: number; currentPageSize: number; }) { fetch(currentPage, currentPageSize).then((responseData) => { data.value = responseData; }); } const { currentPage, currentPageSize, pageCount, isFirstPage, isLastPage, prev, next } = useOffsetPagination({ total: database.value.length, page: 1, pageSize: 10, onPageChange: fetchData, onPageSizeChange: fetchData, }); ``` ## Component Usage ```vue ``` Component event supported props event callback and event listener. event listener: ```vue ``` or props event callback: ```vue ``` ## Type Declarations ```ts export interface UseOffsetPaginationOptions { /** * Total number of items. */ total?: MaybeRefOrGetter; /** * The number of items to display per page. * @default 10 */ pageSize?: MaybeRefOrGetter; /** * The current page number. * @default 1 */ page?: MaybeRef; /** * Callback when the `page` change. */ onPageChange?: (returnValue: UnwrapNestedRefs) => unknown; /** * Callback when the `pageSize` change. */ onPageSizeChange?: (returnValue: UnwrapNestedRefs) => unknown; /** * Callback when the `pageCount` change. */ onPageCountChange?: (returnValue: UnwrapNestedRefs) => unknown; } export interface UseOffsetPaginationReturn { currentPage: Ref; currentPageSize: Ref; pageCount: ComputedRef; isFirstPage: ComputedRef; isLastPage: ComputedRef; prev: () => void; next: () => void; } export type UseOffsetPaginationInfinityPageReturn = Omit; export declare function useOffsetPagination( options: Omit, ): UseOffsetPaginationInfinityPageReturn; export declare function useOffsetPagination( options: UseOffsetPaginationOptions, ): UseOffsetPaginationReturn; ```