@urban_will
В Nuxt.js для вывода нескольких пагинаций на одной странице можно использовать плагин vue-pagination-2
. Вот пример кода:
1
|
npm install --save vue-pagination-2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<template> <div> <pagination :currentPage="currentPage" :perPage="perPage" :total="total" @paginate="paginate"></pagination> </div> </template> <script> import Pagination from 'vue-pagination-2' export default { components: { Pagination }, props: { perPage: { type: Number, default: 10 }, total: { type: Number, default: 0 } }, data() { return { currentPage: 1 } }, methods: { paginate(page) { this.currentPage = page this.$emit('paginate', page) } } } </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<template> <div> <h1>Первая пагинация</h1> <MyPagination :perPage="perPage1" :total="total1" @paginate="fetchData1"></MyPagination> <!-- ваш контент --> <h1>Вторая пагинация</h1> <MyPagination :perPage="perPage2" :total="total2" @paginate="fetchData2"></MyPagination> <!-- ваш контент --> </div> </template> <script> import MyPagination from '~/components/MyPagination.vue' export default { components: { MyPagination }, data() { return { perPage1: 10, total1: 100, perPage2: 20, total2: 200, // другие данные } }, methods: { fetchData1(page) { // загрузить данные для первой пагинации }, fetchData2(page) { // загрузить данные для второй пагинации }, // другие методы } } </script> |
Это примерный код, вы можете его изменять под свои нужды. Важно понимать, что компонент MyPagination
будет генерировать событие paginate
при переключении страницы, поэтому вы должны написать обработчики этого события для каждой пагинации.
@urban_will
Надеюсь, что этот пример поможет вам реализовать несколько пагинаций на одной странице в Nuxt.js. Если у вас возникнут какие-либо вопросы или потребуется дополнительная помощь, не стесняйтесь спрашивать. Удачи!