薛乎乎~ 2024-11-11 22:15 采纳率: 81%
浏览 3

利用cue实现对表格实现增删改查

利用vue、es6完善代码,使得显示10行六列数据,美化表格布局,实现对表格的增删改查


```html
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Vue Table CRUD</title>
  <style>
    table{
      border: 1px solid blue;
      width: 500px;
      text-align:center;
    }
    td{
      border: 1px solid blue;
    }
  </style>
  <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>

<body>

  <div id="app">
    <h2>表格数据增删改查</h2>
    <input type="text" v-model="searchQuery" placeholder="输入名称进行查询">
    <table>
      <thead>
        <tr>
          <th>ID</th>
          <th>姓名</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="item in filteredTableData" :key="item.id">
          <td>{{ item.id }}</td>
          <td v-if="!editingItem || editingItem.id!== item.id">{{ item.name }}</td>
          <td v-if="editingItem && editingItem.id === item.id">
            <input type="text" v-model="editingItem.name">
          </td>
          <td>
            <button v-if="!editingItem || editingItem.id!== item.id" @click="editItem(item)">编辑</button>
            <button v-if="editingItem && editingItem.id === item.id" @click="saveEdit(item.id)">保存</button>
            <button @click="deleteItem(item.id)">删除</button>
          </td>
        </tr>
      </tbody>
    </table>
    <div>
      <input type="text" v-model="newItem.name" placeholder="输入姓名">
      <button @click="addItem">添加</button>
    </div>
  </div>

  <script>
    const app = Vue.createApp({
      data() {
        return {
          tableData: [
            {id:'1',name:'tom'},
            {id:'2',name:'小明'},
            {id:'3',name:'小明'},
            {id:'4',name:'小明'},
            {id:'5',name:'小明'},
            {id:'6',name:'小明'},
            {id:'7',name:'小明'},
            {id:'8',name:'小明'},
            {id:'9',name:'小明'},
            {id:'10',name:'小明'},],
          newItem: { id: null, name: '' },
          editingItem: null,
          searchQuery: ''
        };
      },
      computed: {
        filteredTableData() {
          return this.tableData.filter(item => item.name.includes(this.searchQuery));
        }
      },
      methods: {
        addItem() {
          if (this.newItem.name.trim()!== '') {
            const newId = this.tableData.length > 0? this.tableData[this.tableData.length - 1].id + 1 : 1;
            this.tableData.push({ id: newId, name: this.newItem.name });
            this.newItem.name = '';
          }
        },
        deleteItem(id) {
          this.tableData = this.tableData.filter(item => item.id!== id);
        },
        editItem(item) {
          this.editingItem = {...item };
        },
        saveEdit(id) {
          if (this.editingItem) {
            const index = this.tableData.findIndex(item => item.id === id);
            if (index!== -1) {
              this.tableData[index].name = this.editingItem.name;
              this.editingItem = null;
            }
          }
        }
      }
    });

    app.mount('#app');
  </script>

</body>

</html>


```

  • 写回答

1条回答 默认 最新

  • 无疆76 2024-11-11 22:16
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    代码本身是正确的,能正确地显示表格,进行基本的增删改查操作。以下是对代码的简要解释和功能的概述:

    这段代码定义了一个 Vue 应用,用来管理一个包含姓名和 ID 的表格数据。用户可以添加新的数据行,删除数据行,编辑数据行的内容,以及通过搜索框过滤数据。表格的样式通过简单的 CSS 进行美化。以下是关键部分的解释:

    • 数据部分 (data): 定义了一个名为 tableData 的数组来存储表格数据,还定义了一个 newItem 对象来存储添加新数据行的信息,一个 editingItem 对象来跟踪正在编辑的数据项,以及一个 searchQuery 字符串来存储搜索框的查询内容。
    • 计算属性 (computed): 定义了一个名为 filteredTableData 的计算属性,用于过滤表格数据,以便只显示与搜索框查询匹配的数据。
    • 方法部分 (methods): 定义了一系列方法来处理数据的增删改查操作。包括 addItem 用于添加新的数据行,deleteItem 用于删除数据行,editItem 用于开始编辑一个数据项,saveEdit 用于保存编辑后的数据项。

    注意,代码没有对输入进行验证(例如,确保添加新的姓名时输入的是非空字符串)。在实际应用中,可能需要添加更多的验证和错误处理机制。此外,对于大型数据集,可能需要考虑使用分页或无限加载等技术来提高性能。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月11日