usePagination in Vue

Vue interview exercise on Composables, difficulty 2 of 3. Solve it in the editor beside a worked example; the tests run the moment you do.

Write usePagination<T>(items: Ref<T[]>, perPage: number) returning { page, pageCount, pageItems, hasPrev, hasNext, next, prev }: page starts at 1, pageCount is at least 1, pageItems is the current page's slice, next/prev move within 1…pageCount. When the items shrink so the current page no longer exists, page moves to the last page (watch pageCount).

Each exercise pairs a worked example with a twin problem to solve in a real editor; the tests run the moment you do. Progress is saved in your browser, and in your account if you sign in.

More Composables in Vue

All Vue exercises · Other languages and frameworks