当前位置:首页 > VUE

vue实现表格添加

2026-02-20 00:50:12VUE

使用 Vue 实现表格添加功能

数据绑定与表格渲染

在 Vue 中通过 v-model 绑定表单输入数据,使用 v-for 渲染表格。初始化一个空数组 tableData 存储表格数据,并通过双向绑定动态更新。

<template>
  <div>
    <input v-model="newItem.name" placeholder="名称">
    <input v-model="newItem.age" placeholder="年龄">
    <button @click="addItem">添加</button>

    <table>
      <tr>
        <th>名称</th>
        <th>年龄</th>
      </tr>
      <tr v-for="(item, index) in tableData" :key="index">
        <td>{{ item.name }}</td>
        <td>{{ item.age }}</td>
      </tr>
    </table>
  </div>
</template>

添加数据方法

在 Vue 实例的 methods 中定义 addItem 方法,将新数据推入 tableData 数组,并清空输入框。

vue实现表格添加

<script>
export default {
  data() {
    return {
      newItem: { name: '', age: '' },
      tableData: []
    }
  },
  methods: {
    addItem() {
      if (this.newItem.name && this.newItem.age) {
        this.tableData.push({...this.newItem});
        this.newItem = { name: '', age: '' };
      }
    }
  }
}
</script>

数据验证

添加简单的非空验证,确保用户输入有效数据后再执行添加操作。

methods: {
  addItem() {
    if (!this.newItem.name.trim() || !this.newItem.age.trim()) {
      alert('请填写完整信息');
      return;
    }
    this.tableData.push({...this.newItem});
    this.newItem = { name: '', age: '' };
  }
}

使用计算属性优化

若需对表格数据进行过滤或排序,可通过计算属性实现,避免直接修改原始数据。

vue实现表格添加

computed: {
  sortedData() {
    return [...this.tableData].sort((a, b) => a.age - b.age);
  }
}

组件化拆分

对于复杂表格,可将表格行拆分为子组件,通过 props 传递数据,提高代码可维护性。

<template>
  <tr>
    <td>{{ item.name }}</td>
    <td>{{ item.age }}</td>
  </tr>
</template>

<script>
export default {
  props: ['item']
}
</script>

响应式更新注意事项

Vue 2 中直接通过索引修改数组元素时需使用 Vue.set 确保响应式更新。Vue 3 中使用 reactiveref 自动处理。

// Vue 2
Vue.set(this.tableData, index, newValue);

// Vue 3
const tableData = ref([]);
tableData.value[index] = newValue; // 自动响应

标签: 表格vue
分享给朋友:

相关文章

vue 实现长列表

vue 实现长列表

Vue 实现长列表的优化方案 虚拟滚动技术 虚拟滚动是处理长列表的高效方式,仅渲染可视区域内的元素。通过计算滚动位置动态加载和卸载DOM节点,大幅减少内存占用和渲染压力。 <template&…

vue实现发送值接受值

vue实现发送值接受值

Vue 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <template&g…

vue实现闪烁

vue实现闪烁

Vue实现元素闪烁效果 使用CSS动画实现 通过Vue绑定class结合CSS动画实现闪烁效果,代码简洁且性能较好。 <template> <div :class="{…

vue 实现级联

vue 实现级联

Vue 实现级联选择器 级联选择器(Cascader)常用于省市区选择、分类选择等场景。Vue 中可以通过 Element UI、Ant Design Vue 等 UI 库实现,也可以手动封装。 使…

vue实现switch

vue实现switch

Vue 实现 Switch 开关组件 在 Vue 中实现 Switch 开关组件可以通过自定义组件或使用现有 UI 库完成。以下是几种常见实现方式: 自定义 Switch 组件 创建一个基础…

vue实现socket

vue实现socket

Vue 中实现 WebSocket 通信 在 Vue 项目中实现 WebSocket 通信可以通过原生 WebSocket API 或第三方库(如 socket.io-client)完成。以下是两种常…