当前位置:首页 > VUE

vue实现表格重置功能

2026-01-21 12:39:09VUE

实现表格重置功能的方法

在Vue中实现表格重置功能通常涉及清空或恢复表格数据、分页、筛选条件等状态。以下是几种常见实现方式:

使用v-model绑定数据

通过v-model绑定表格数据,重置时直接恢复初始值:

<template>
  <el-table :data="tableData" v-loading="loading">
    <!-- 表格列定义 -->
  </el-table>
  <el-button @click="resetTable">重置表格</el-button>
</template>

<script>
export default {
  data() {
    return {
      originalData: [], // 初始数据备份
      tableData: [],    // 当前表格数据
      loading: false
    }
  },
  methods: {
    async fetchData() {
      this.loading = true
      const res = await api.getData()
      this.tableData = res.data
      this.originalData = [...res.data] // 深拷贝初始数据
      this.loading = false
    },
    resetTable() {
      this.tableData = [...this.originalData] // 恢复初始数据
    }
  }
}
</script>

结合表单重置

当表格包含筛选表单时,可同时重置表单和表格:

vue实现表格重置功能

<template>
  <el-form ref="filterForm" @submit.native.prevent>
    <el-form-item label="名称" prop="name">
      <el-input v-model="filterForm.name"></el-input>
    </el-form-item>
    <!-- 其他筛选条件 -->
  </el-form>
  <el-table :data="filteredData">
    <!-- 表格列定义 -->
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      filterForm: { name: '', status: '' },
      allData: []
    }
  },
  computed: {
    filteredData() {
      return this.allData.filter(item => 
        item.name.includes(this.filterForm.name)
      )
    }
  },
  methods: {
    resetTable() {
      this.$refs.filterForm.resetFields() // 重置表单
      this.fetchData() // 重新获取数据
    }
  }
}
</script>

使用Vuex管理状态

对于复杂场景,可通过Vuex集中管理表格状态:

// store/modules/table.js
const state = {
  tableData: [],
  pagination: { page: 1, size: 10 }
}

const mutations = {
  RESET_TABLE(state) {
    state.tableData = []
    state.pagination = { page: 1, size: 10 }
  }
}

组件中调用:

vue实现表格重置功能

methods: {
  resetTable() {
    this.$store.commit('table/RESET_TABLE')
    this.fetchData()
  }
}

第三方表格组件重置

如使用Element UI的Table组件,可利用其提供的方法:

<el-table ref="dataTable">
  <!-- 表格内容 -->
</el-table>

<script>
export default {
  methods: {
    resetTable() {
      this.$refs.dataTable.clearSort()  // 清除排序
      this.$refs.dataTable.clearFilter() // 清除筛选
      this.tableData = [...this.originalData] // 重置数据
    }
  }
}
</script>

完整重置方案示例

结合数据、分页、筛选的完整重置:

resetTable() {
  // 重置数据
  this.tableData = [...this.originalData]

  // 重置分页
  this.pagination = {
    currentPage: 1,
    pageSize: 10,
    total: 0
  }

  // 重置筛选条件
  this.filterParams = {
    keyword: '',
    status: null
  }

  // 重置排序
  this.sortParams = {
    prop: '',
    order: ''
  }

  // 重新加载数据
  this.loadData()
}

根据具体需求选择合适的方法,注意处理数据深拷贝问题以避免引用类型数据修改导致的意外行为。

标签: 表格功能
分享给朋友:

相关文章

国外vue实现表格控件

国外vue实现表格控件

以下是国外流行的 Vue 表格控件实现方案及特点,供参考: vue-good-table 基于 Vue 2/3 的轻量级表格组件,支持排序、分页、筛选等功能。 安装方式: npm instal…

vue表格实现单选框

vue表格实现单选框

Vue 表格实现单选框的方法 在 Vue 中实现表格单选框功能,可以通过结合 el-table(Element UI)或原生表格与 Vue 的数据绑定特性完成。以下是几种常见实现方式: 使用 Ele…

vue 实现 功能

vue 实现 功能

Vue.js 是一个流行的前端框架,用于构建用户界面和单页应用程序。以下是一些常见的 Vue 功能实现方法: 数据绑定 Vue 的核心特性之一是数据绑定,可以通过 v-model 指令实现双向数据绑…

vue element实现表格

vue element实现表格

Vue + Element UI 实现表格 Element UI 提供了强大的表格组件 el-table,结合 Vue 可以快速实现数据展示、排序、筛选等功能。 基础表格实现 安装 Element…

vue实现后台功能

vue实现后台功能

Vue 实现后台功能的方法 Vue.js 是一个流行的前端框架,适合构建后台管理系统。以下是实现后台功能的常见方法和步骤。 项目初始化 使用 Vue CLI 或 Vite 初始化项目: # Vue…

vue实现复选功能

vue实现复选功能

Vue 实现复选功能 基础实现 使用 v-model 绑定到数组实现多选功能。当复选框被选中时,其 value 会被添加到数组中;取消选中时,会从数组中移除。 <template>…