You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt.js useFetch()无法在浏览器展示数据求助

Nuxt.js useFetch 无法展示数据的排查与修复方案

1. 先解决初始空值导致的渲染报错

useFetch 是异步钩子,页面初始化时 formattedJSON 为 null,直接访问 formattedJSON.featured 会触发 TypeError,导致页面渲染中断。你需要添加空值判断:

修改模板代码:

<template>
  <!-- 先判断数据是否存在,再渲染列表 -->
  <div v-if="formattedJSON">
    <q-card v-for="article in formattedJSON.featured" :key="article.id">
      <q-img :src="article.image" @load="imageLoaded" />
      <q-card-section>
        <NuxtLink
          :to="article.channel.url"
          class="text-channel text-caption q-mb-sm text-uppercase text-weight-bold"
          style="text-decoration: none"
        >{{ article.channel.name }}</NuxtLink>
        <p class="q-mb-sm text-header4">{{ article.title }}</p>
        <p class="q-mb-xl text-data">{{ article.blurb }}</p>
      </q-card-section>
    </q-card>
  </div>
  <!-- 加载状态提示 -->
  <div v-else>加载中...</div>
</template>

或者用可选链简化判断:

<q-card v-for="article in formattedJSON?.featured" :key="article?.id">

2. 验证接口请求是否正常

打开浏览器开发者工具的「网络」面板,查看 https://featured/get/ 请求:

  • 如果是4xx/5xx状态码:确认接口地址是否正确,或者后端服务是否正常运行。
  • 如果请求未发送:检查是否存在跨域限制,必要时配置Nuxt代理转发请求。

3. 确认接口返回数据结构

在代码中打印返回数据,验证结构是否符合预期:

<script setup>
const { data: formattedJSON } = await useFetch("https://featured/get/");
// 在控制台查看实际返回的JSON结构
console.log("接口返回数据:", formattedJSON.value);
</script>

确保返回的JSON确实包含 featured 数组,且数组内元素存在 id、image、channel、title、blurb 这些字段。

4. 利用请求状态做反馈

useFetch 还提供了 error 和 pending 状态,可以用来展示加载/错误提示:

<script setup>
const { data: formattedJSON, error, pending } = await useFetch("https://featured/get/");
</script>

<template>
  <div v-if="pending">加载中...</div>
  <div v-else-if="error">加载失败:{{ error.message }}</div>
  <div v-else-if="formattedJSON">
    <q-card v-for="article in formattedJSON.featured" :key="article.id">
      <!-- 卡片内容 -->
    </q-card>
  </div>
</template>

内容的提问来源于stack exchange,提问作者bartttz_000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:35:15