当前位置:首页 > 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 密码框实现方案 在 Vue 中实现密码框功能,可以通过原生 HTML 结合 Vue 指令或使用第三方组件库完成。以下是几种常见方案: 原生 HTML + Vue 双向绑定 <templ…

vue 实现jqslidedown

vue 实现jqslidedown

在 Vue 中实现类似 jQuery 的 slideDown 效果,可以通过 Vue 的过渡系统或 CSS 动画结合动态样式绑定来实现。以下是几种实现方式: 使用 Vue Transition 组件…

vue实现setinterval

vue实现setinterval

在 Vue 中使用 setInterval Vue 中可以通过生命周期钩子和方法结合 setInterval 实现定时任务。以下是一个完整的实现示例: <template> <…

vue实现slot

vue实现slot

Vue 中的 Slot 实现方法 Vue 的 slot 是一种内容分发机制,允许父组件向子组件插入内容。以下是几种常见的 Slot 实现方式: 默认 Slot 子组件通过 <slot>…

vue 实现长按

vue 实现长按

实现长按功能的基本思路 在Vue中实现长按功能,通常需要监听元素的mousedown或touchstart事件,启动一个计时器。当用户按住元素超过设定的时间阈值时,触发长按回调函数。如果在时间阈值内触…

vue watch实现

vue watch实现

在 Vue 中实现 watch 监听数据变化 Vue 的 watch 选项用于监听数据变化并执行相应的回调函数。以下是几种常见的实现方式: 基础用法 export default { data(…