当前位置:首页 > 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>

结合表单重置

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

<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 }
  }
}

组件中调用:

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 按钮点击功能实现 在 Vue 中实现按钮点击功能可以通过多种方式完成,以下是常见的实现方法: 方法一:使用 v-on 指令 通过 v-on:click 或简写 @click 绑定事件:…

css制作三行三列表格

css制作三行三列表格

使用HTML和CSS创建三行三列表格 通过HTML的<table>标签结合CSS样式可以轻松实现三行三列的表格结构。 <table class="three-by-three"&…

vue实现倒计时功能

vue实现倒计时功能

vue实现倒计时功能 在Vue中实现倒计时功能可以通过多种方式完成,以下是几种常见的方法: 方法一:使用setInterval和clearInterval 创建一个倒计时组件,利用setInter…

vue实现分页功能

vue实现分页功能

Vue 分页功能实现 在 Vue 中实现分页功能通常需要结合后端 API 或前端数据分页逻辑。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,直接在 Vue 组件中处理分页逻辑…

vue实现审核功能

vue实现审核功能

实现审核功能的基本思路 审核功能通常涉及状态管理、权限控制和操作记录。Vue中可以通过组件化设计、状态管理库(如Vuex或Pinia)和后端API配合实现。 审核状态管理 使用Vuex或Pinia…

vue日历表格实现

vue日历表格实现

实现Vue日历表格的基本步骤 使用Vue实现日历表格需要处理日期数据生成、渲染和交互逻辑。以下是核心实现方法: 安装依赖(可选) 若需复杂功能可引入date-fns或dayjs等日期库: np…