usePagination
Bir sayfayı ve sayfa sayısını, sayfa ilerledikçe uzunluğunu sabit tutarak, işlenecek sayfa ve üç nokta listesine dönüştürür.
7 itemspnpm dlx shadcn@latest add https://hextaui.com/r/use-pagination.jsonHook'u ve bağımlı olduğu her şeyi projenize ekler.
Aşağıdaki kodu kopyalayıp projenize yapıştırın.
hooks/use-pagination.ts İçe aktarma yollarını proje yapılandırmanıza uyacak şekilde güncelleyin.
Hook yalnızca hesabı yapar. İşlenecek sayfa ve üç nokta listesini döndürür, işaretlemeyi size bırakır; Pagination bağlantılarını böyle oluşturur. Bir carousel için noktalar veya tablo alt bilgisinde bir sayfa seçici gibi kendi sayfalayıcınızı oluşturmak için kullanın.
Liste her zaman ilk ve son boundaries sayfayı ve geçerli sayfanın her iki yanında siblings sayfayı gösterir. Üç nokta, iki veya daha fazla sayfalık her boşluğu doldurur. Tam bir sayfalık boşlukta bunun yerine o sayfa gösterilir; çünkü orada bir üç nokta kapladığından fazlasını gizlemezdi.
Yeterli sayfa olduğunda liste her zaman 2 × boundaries + 2 × siblings + 3 öğeye sahiptir. Uçlara yakınken pencere küçülmek yerine genişler. Uzunluk hiç değişmediği için sayfalayıcı genişliğini korur ve sayfalarda gezinirken sonraki ve önceki düğmeler imlecin altında kalır.
countvepagesınırlanır: sondan sonraki bir sayfa son sayfa olur ve sonlu bir sayı olmayan her şey varsayılana düşer.- 0 değerli bir
counthiç öğe ve 0 değerli birpagedöndürür; böylece boş bir tablo özel durum olmadan hiçbir şey işleyebilir. siblingsveboundaries0 ile 10 arasındadır.- Üç noktaların
startveyaenddeğerinde kararlı birpositiondeğeri vardır. Bunu React key'i olarak kullanın.
Noktalar
boundaries: 0 ile liste yalnızca geçerli sayfanın çevresinde bir penceredir. Üç noktalar küçük noktalara dönüşür; böylece uzun bir slayt kümesi hiçbir zaman beşten fazla hedefe ihtiyaç duymaz.
- Geçerli sayfayı
aria-current="page"ile işaretleyin ve listeyi etiketli bir<nav>içine sarın. - Üç noktaları
aria-hiddenile ekran okuyuculardan gizleyin. Sayfa numaralarının vermediği hiçbir bilgi taşımazlar. - Basamaklar değişirken düğmelerin genişliği değişmesin diye sayfa numaralarını
tabular-numsile gösterin.
| Prop | Tür | Varsayılan |
|---|---|---|
countToplam sayfa sayısı. | number | – |
page1'den başlayan geçerli sayfa. | number | 1 |
siblingsGeçerli sayfanın her iki yanında gösterilecek sayfalar. | number | 1 |
boundariesBaşta ve sonda her zaman gösterilecek sayfalar. | number | 1 |
| Özellik | Açıklama |
|---|---|
items | Sırayla işlenecek PaginationItemData[]. |
page | Sınırlanmış geçerli sayfa. |
count | Sınırlanmış sayfa sayısı. |
hasPrevious | Bundan önce bir sayfa olup olmadığı. |
hasNext | Bundan sonra bir sayfa olup olmadığı. |
Pagination.