November 11, 2023 vue javascript
Melanjutkan Nomor Urut Iterasi di Halaman Selanjutnya Pada Pagination
Pagination adalah cara menampilkan data yang banyak menjadi per halaman. Misal datanya berjumlah 100, dengan pagination data bisa dibagi jadi 10 halaman, setiap halaman menampilkan 10 data.
Saat menampilkan data dengan iterasi, setiap iterasi dapat ditampilkan nomor urutnya. Cara yang biasanya digunakan adalah dengan index + 1
. Contoh.
<tr>
<th>No</th>
<th>Nama</th>
</tr>
<tr v-for="(index, product) in products.rows">
<td>{{ index + 1 }}</td>
<td>{{ product.name }}</td>
</tr>
Ketika berganti halaman akan muncul masalah, no urut akan direset menjadi dari 1, padahal seharusnya no urut dilanjutkan dari halaman sebelumnya.
Untuk mengatasinya, perhitungan no urut perlu diubah menjadi:
perPage * (currentPage - 1) + index + 1`
perPage
adalah jumlah data yang ditampilkan di setiap halamancurrentPage
adalah halaman saat iniindex
adalah index iterasi
Setelah diimplementasikan pada kode sebelumnya.
<tr>
<th>No</th>
<th>Nama</th>T
</tr>
<tr v-for="(index, product) in products.rows">
<td>{{ products.meta.perPage * (products.meta.currentPage - 1) + index + 1 }}
<td>{{ product.name }}
</tr>
Hasilnya, nomor urut akan tetap berlanjut di halaman berikutnya.