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

如何使用Vue异步从API获取数据生成表格?代码问题排查修复

问题修复方案

你的代码存在几处关键问题,导致Vue无法正常工作且数据无法正确渲染,以下是具体修复方案:

1. 补充Vue核心库引入

如果HTML中未引入Vue,Vue实例无法初始化,需在HTML的<head>或<body>末尾添加Vue的CDN引用:

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

2. 修复JavaScript代码的语法与逻辑错误

语法错误:mounted钩子未闭合

原代码的mounted部分缺失闭合的},导致语法报错,Vue无法正常实例化。

逻辑错误:数据赋值方式错误

fetch返回的finalRes是用户对象数组,你错误地给rows数组本身添加id/name/phone属性,正确做法是直接将rows替换为获取到的数组。

修正后的完整代码

HTML部分(含Vue引入)

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="app">
  <table>
    <thead>
      <tr>
        <th v-for="(header, key) in column" :key="key">{{ header }}</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="row in rows" :key="row.id">
        <td>{{ row.id }}</td>
        <td>{{ row.name }}</td>
        <td>{{ row.phone }}</td>
      </tr>
    </tbody>
  </table>
</div>

JavaScript部分

var app = new Vue({
  el: "#app",
  data: {
    column: {
      id: "ID",
      name: "Full Name",
      phone: "Phone",
    },
    rows: [], // 初始化空数组即可,无需默认空对象
  },

  methods: {
    async fetchData() {      
      const response = await fetch("https://jsonplaceholder.typicode.com/users");      
      const finalRes = await response.json();
      this.rows = finalRes; // 直接将获取到的用户数组赋值给rows
    },    
  },
  mounted() {
    this.fetchData();
  } // 补上缺失的闭合括号
});

效果说明

修正后,页面会正确渲染出你预期的用户表格,表头对应column中的字段名,表格内容为从API获取的10条用户数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:57:28