leiyun před 1 měsícem
rodič
revize
834db03192
1 změnil soubory, kde provedl 1 přidání a 9 odebrání
  1. +1
    -9
      app/composables/useArticle.js

+ 1
- 9
app/composables/useArticle.js Zobrazit soubor

@@ -99,12 +99,7 @@ export async function useArticleDetail(colId) {
const { post } = useApi()
const id = parseArticleId(route.params.id)

/**
* 注意:所有依赖 Nuxt 上下文的组合式函数(useSeoMeta / useHead / navigateTo)
* 必须在 await 之前调用,await 之后上下文会丢失(NUXT_E1001)。
* 因此这里先注册 SEO(用 getter 读取 data),最后再 await 数据做 404 判断。
*/
const asyncData = useAsyncData(`article-${id}`, async () => {
const asyncData = await useAsyncData(`article-${id}`, async () => {
const [detailRes, hotRes, tagRes] = await Promise.all([
post('/article/getdetail', { id, prev_next: 1 }),
post('/article/gethotlist', { page_no: 1, page_size: 10 }).catch(() => ({ list: [] })),
@@ -151,9 +146,6 @@ export async function useArticleDetail(colId) {
}],
})

// 等数据就绪后再判断(await 之后不能再调用需要上下文的组合式函数)
await asyncData

// 文章不存在 → 404,避免无效页面被搜索引擎收录
if (error.value || !data.value?.detail?.id) {
throw createError({ statusCode: 404, statusMessage: '文章不存在', fatal: true })


Načítá se…
Zrušit
Uložit