【发布时间】:2019-12-12 11:46:58
【问题描述】:
我正在尝试使用两个 <a> 标记对我的博客页面上的特定帖子进行分页。
根据Prismic Pagination API,实现这个就像传递参数链接?page=1一样简单,比如example.com/blog/?page=1,但是没有任何变化。
如果我 cannot use a component instance 更改 query page 选项,我如何query asyncData() 内部的异步函数?
pages/blog/index.vue:
<template>
<div class="container">
<h1>{{ title }}</h1>
<h2>{{ content }}</h2>
<section class="columns is-multiline is-centered">
<article
class="post box column is-3-widescreen is-4-tablet"
v-for="(post, index) in posts"
:key="index"
>
<nuxt-link :to="`/blog/${post.uid}`">
<img :src="post.data.image.url" alt />
<h3 class="title is-6">{{ Dom.RichText.asText(post.data.title) }}</h3>
</nuxt-link>
</article>
</section>
<!-- I want to PAGINATE my posts from here -->
<nav class="pagination column">
<a class="pagination-previous button is-black"><</a>
<a class="pagination-next button is-black">></a>
</nav>
</div>
</template>
<script>
import Prismic from 'prismic-javascript'
import PrismicDOM from 'prismic-dom'
import { initApi, generatePageData } from '@/prismic.config'
export default {
data() {
return {
Dom: PrismicDOM,
title: 'Blog',
content:
'Welcome to my blog. Browse through a streamline of tech tutorials that suits you needs.'
}
},
head() {
return {
title: this.title,
meta: [
{
hid: 'description',
name: 'description',
content: this.content
}
]
}
},
asyncData(context) {
if (context.payload) {
return generatePageData('blog_page', context.payload)
} else {
return initApi().then(api => {
return api
.query(Prismic.Predicates.at('document.type', 'blog_posts'), {
pageSize: 3,
page: 1
})
.then(response => {
return generatePageData('blog_page', response.results)
})
})
}
}
}
</script>
【问题讨论】:
标签: pagination nuxt.js prismic.io