Да вроде все просто.
<template>
<nav aria-label="Paginate me">
<nuxt-link v-if="previous != null" class="page-link" :to="previous" tabindex="-1">Предыдущая</nuxt-link>
<nuxt-link v-if="next != null" class="page-link" :to="next">Следующая</nuxt-link>
</nav>
</template>
<script>
import axios from "axios";
export default {
watchQuery: ['page'],
data() {
return {
posts: [],
total: [],
next: [],
previous: [],
}
},
async asyncData({route}) {
let page = route.query.page !== undefined ? `?page=${route.query.page}` : '';
const { data } = await axios.get(`http://127.0.0.1:8000/api/posts/${page}`);
let next = data.next != null ? data.next.split('/')[5] : data.next;
let previous = data.previous != null ? data.previous.split('/')[5] : data.previous;
return {
posts: data.results,
total: Math.ceil(data.count / 6),
next: next,
previous: previous,
page: page
}
},
}
</script>