Как вывести две пагинации на одной странице в nuxt.js?

Пользователь

от urban_will , в категории: JavaScript , год назад

Как вывести две пагинации на одной странице в nuxt.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от hanna_jacobson , год назад

@urban_will 

В Nuxt.js для вывода нескольких пагинаций на одной странице можно использовать плагин vue-pagination-2. Вот пример кода:

  1. Установите плагин vue-pagination-2 с помощью npm:
1
npm install --save vue-pagination-2


  1. Создайте компонент для пагинации. Назовите его, например, MyPagination.vue:
 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. Используйте компонент MyPagination в вашей странице:
 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 при переключении страницы, поэтому вы должны написать обработчики этого события для каждой пагинации.