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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@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 при переключении страницы, поэтому вы должны написать обработчики этого события для каждой пагинации.

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

от ransom_homenick , 8 месяцев назад

@urban_will 

Надеюсь, что этот пример поможет вам реализовать несколько пагинаций на одной странице в Nuxt.js. Если у вас возникнут какие-либо вопросы или потребуется дополнительная помощь, не стесняйтесь спрашивать. Удачи!