返回

Vue 轻松更新行数据,掌握表格操作核心秘诀

前端

前言

在现代网络应用中,数据表格是一种常见且重要的 UI 元素。它可以帮助用户直观地查看和管理数据,是构建数据驱动的应用程序必不可少的组成部分。Vue.js 作为一款流行的前端框架,提供了丰富的功能和强大的 API,可以帮助我们轻松构建动态的数据表格应用。

页面效果展示

在本教程中,我们将构建一个简单的用户信息管理页面。该页面包含一个数据表格,其中显示了所有注册用户的相关信息,包括用户 ID、用户名、邮箱和注册时间。如下图所示:

[图片]

需求分析

在构建数据表格应用之前,我们需要先进行需求分析,明确需要实现的功能和效果。在本例中,我们需要实现以下功能:

  1. 获取所有注册用户的信息。
  2. 使用 Vue.js 动态渲染数据表格,并显示用户的信息。
  3. 当用户修改数据表格中的某个单元格时,实时更新数据库中的数据。

首先,进入用户信息管理列表,就获取用户注册的所有信息数据,并通过数据表格动态渲染出来,每一个用户独占一行,并且根据用户 id 号给定固定的序号。

// 获取用户数据
const getUsers = async () => {
  const response = await fetch('/api/users');
  const data = await response.json();
  return data;
};

// 创建 Vue 实例
const app = new Vue({
  el: '#app',
  data: {
    users: [],
    editingRow: null,
  },
  methods: {
    async fetchUsers() {
      this.users = await getUsers();
    },
    startEdit(index) {
      this.editingRow = index;
    },
    stopEdit() {
      this.editingRow = null;
    },
    async saveChanges(user) {
      // 发送更新请求
      const response = await fetch('/api/users/' + user.id, {
        method: 'PUT',
        body: JSON.stringify(user),
        headers: { 'Content-Type': 'application/json' },
      });
      if (response.ok) {
        // 更新成功,停止编辑状态
        this.stopEdit();
      } else {
        // 更新失败,提示错误信息
        alert('更新失败,请重试');
      }
    },
  },
  created() {
    this.fetchUsers();
  },
});

其次,表格的最后一列作为

<template>
  <div id="app">
    <table>
      <thead>
        <tr>
          <th>序号</th>
          <th>用户名</th>
          <th>邮箱</th>
          <th>注册时间</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="(user, index) in users" :key="user.id">
          <td>{{ index + 1 }}</td>
          <td>
            <input v-if="editingRow === index" v-model="user.name" @blur="stopEdit" />
            <span v-else>{{ user.name }}</span>
          </td>
          <td>
            <input v-if="editingRow === index" v-model="user.email" @blur="stopEdit" />
            <span v-else>{{ user.email }}</span>
          </td>
          <td>{{ user.created_at }}</td>
          <td>
            <button @click="startEdit(index)">编辑</button>
            <button v-if="editingRow === index" @click="saveChanges(user)">保存</button>
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

文章结语

在本教程中,我们学习了如何使用 Vue.js 更新数据表格中的行数据。我们从需求分析开始,逐步讲解了如何获取用户注册信息,如何使用 Vue.js 动态渲染数据表格,以及如何实现行数据的更新操作。通过本教程,您已经掌握了构建复杂的数据表格应用的核心技巧。希望这些技巧能够帮助您在未来的开发项目中更加游刃有余。