当前位置:首页 > VUE

vue实现表格刷新

2026-01-16 22:17:44VUE

Vue 实现表格刷新的方法

使用 v-if 强制重新渲染

通过 v-if 控制表格的显示与隐藏,切换时 Vue 会重新渲染组件。

<template>
  <button @click="refreshTable">刷新表格</button>
  <table v-if="showTable">
    <!-- 表格内容 -->
  </table>
</template>

<script>
export default {
  data() {
    return {
      showTable: true
    }
  },
  methods: {
    refreshTable() {
      this.showTable = false
      this.$nextTick(() => {
        this.showTable = true
      })
    }
  }
}
</script>

修改 key 强制更新

为表格绑定动态 key,改变 key 值会触发组件重新渲染。

vue实现表格刷新

<template>
  <button @click="refreshTable">刷新表格</button>
  <table :key="tableKey">
    <!-- 表格内容 -->
  </table>
</template>

<script>
export default {
  data() {
    return {
      tableKey: 0
    }
  },
  methods: {
    refreshTable() {
      this.tableKey += 1
    }
  }
}
</script>

通过数据更新驱动刷新

直接更新表格绑定的数据源,Vue 的响应式系统会自动更新视图。

vue实现表格刷新

<template>
  <button @click="refreshTable">刷新表格</button>
  <table>
    <tr v-for="item in tableData" :key="item.id">
      <td>{{ item.name }}</td>
    </tr>
  </table>
</template>

<script>
export default {
  data() {
    return {
      tableData: []
    }
  },
  methods: {
    async refreshTable() {
      const res = await fetch('/api/data')
      this.tableData = await res.json()
    }
  }
}
</script>

使用 $forceUpdate 方法

强制组件重新渲染,适用于数据更新但视图未响应的情况。

<template>
  <button @click="refreshTable">刷新表格</button>
  <table>
    <!-- 表格内容 -->
  </table>
</template>

<script>
export default {
  methods: {
    refreshTable() {
      this.$forceUpdate()
    }
  }
}
</script>

结合 Vuex 状态管理

通过 Vuex 管理表格数据,提交 mutation 或 action 更新数据。

// store.js
export default new Vuex.Store({
  state: {
    tableData: []
  },
  mutations: {
    updateTableData(state, payload) {
      state.tableData = payload
    }
  },
  actions: {
    async fetchTableData({ commit }) {
      const res = await fetch('/api/data')
      commit('updateTableData', await res.json())
    }
  }
})
<template>
  <button @click="refreshTable">刷新表格</button>
  <table>
    <tr v-for="item in $store.state.tableData" :key="item.id">
      <td>{{ item.name }}</td>
    </tr>
  </table>
</template>

<script>
export default {
  methods: {
    refreshTable() {
      this.$store.dispatch('fetchTableData')
    }
  }
}
</script>

注意事项

  • 数据驱动更新是 Vue 推荐的方式,优先考虑通过修改数据实现刷新
  • v-ifkey 方法会触发组件完全重新渲染,可能影响性能
  • $forceUpdate 不会更新子组件,仅强制当前组件重新渲染
  • 大型项目建议使用 Vuex 或 Pinia 集中管理状态

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

相关文章

vue实现框架

vue实现框架

Vue 框架实现的核心方法 基础项目搭建 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 更适合现代轻量级应用。安装后通过命令行工具选择所需配置(如 Rou…

vue实现粘贴

vue实现粘贴

Vue 实现粘贴功能的方法 在 Vue 中实现粘贴功能通常涉及监听粘贴事件并处理剪贴板数据。以下是几种常见的实现方式: 监听原生粘贴事件 通过 @paste 指令或原生 addEventListen…

vue 实现打印

vue 实现打印

Vue 实现打印功能的方法 在Vue项目中实现打印功能,可以通过以下几种方式实现: 使用window.print()方法 通过调用浏览器的原生打印API实现基础打印功能,适用于简单内容打印。 //…

vue 简单实现

vue 简单实现

以下是 Vue 的简单实现示例,涵盖基础模板、数据绑定、方法及生命周期: 基础模板与数据绑定 <div id="app"> <p>{{ message }}</p&…

vue实现换页

vue实现换页

Vue实现页面切换的方法 在Vue中实现页面切换通常可以通过Vue Router来完成。Vue Router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。以下是几种常见的实现方式:…

vue实现拖拉

vue实现拖拉

实现拖拽功能的基本步骤 在Vue中实现拖拽功能可以通过原生HTML5的拖放API或第三方库如vuedraggable完成。以下是两种方法的详细说明。 使用HTML5原生拖放API HTML5提供了原…