我在我的项目中有一个帖子页面和一个类别页面,以及通常的内部页面。
现在我在pages文件夹中有如下结构:
- 页面/类别/_id。vue -我发送一个类别的请求
- 页面/post/_id。发送post请求
- 页面/页面/_id。
这个项目的api是用laravel编写的(不知道这是否重要)
我想知道下一步要发送哪个请求,获取类别或帖子,然后选择所需的模板来显示类别或帖子。如果没有类别或帖子,则重定向到404页。这可能吗?
在这种情况下,API提供商无关紧要。只有Vue/next页面模板生命周期内的逻辑。
每个页面模板,所以类别/帖子/页面提供id可以使用不同的端点从API获取数据。Nuxt ?2个还是3个?
在next 2你应该使用asyncData特定的页面模板,例如:post:
async asyncData ({ store, $axios, params, error }) {
return $axios.get(`${apiEndpoint}/posts`, {
params: {
id: params.id
}
}).then(item => {
if (item.data.length === 0) throw({ statusCode: 404, message: 'Post not found' })
return { item: item.data[0] }
}).catch(e => {
error(e)
})
}
如果你想强制404:
try {
} catch (err) {
if (err.response.status === 404) {
return this.$nuxt.error({ statusCode: 404, message: err.message })
}
}