--- 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< UseOffsetPaginationReturn, "isLastPage" > export declare function useOffsetPagination( options: Omit, ): UseOffsetPaginationInfinityPageReturn export declare function useOffsetPagination( options: UseOffsetPaginationOptions, ): UseOffsetPaginationReturn ```