当前位置:首页 > VUE

vue 实现table切换

2026-01-16 00:31:10VUE

实现 Vue 表格切换功能

在 Vue 中实现表格切换功能通常涉及动态渲染不同的表格数据或切换不同的表格样式。以下是几种常见的实现方式:

动态数据切换

通过改变表格绑定的数据源实现切换:

<template>
  <div>
    <button @click="currentTable = 'table1'">表格1</button>
    <button @click="currentTable = 'table2'">表格2</button>

    <table>
      <thead>
        <tr>
          <th v-for="col in columns" :key="col">{{ col }}</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="row in activeData" :key="row.id">
          <td v-for="col in columns" :key="col">{{ row[col] }}</td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      currentTable: 'table1',
      table1Data: [...],
      table2Data: [...],
      columns: ['id', 'name', 'age']
    }
  },
  computed: {
    activeData() {
      return this.currentTable === 'table1' ? this.table1Data : this.table2Data
    }
  }
}
</script>

组件切换方式

使用动态组件切换不同的表格组件:

<template>
  <div>
    <button @click="currentComponent = 'TableA'">表格A</button>
    <button @click="currentComponent = 'TableB'">表格B</button>

    <component :is="currentComponent" :data="tableData"/>
  </div>
</template>

<script>
import TableA from './TableA.vue'
import TableB from './TableB.vue'

export default {
  components: { TableA, TableB },
  data() {
    return {
      currentComponent: 'TableA',
      tableData: [...]
    }
  }
}
</script>

条件渲染

使用 v-if/v-show 控制不同表格的显示:

<template>
  <div>
    <button @click="showTable1 = true; showTable2 = false">表格1</button>
    <button @click="showTable1 = false; showTable2 = true">表格2</button>

    <table v-if="showTable1">
      <!-- 表格1内容 -->
    </table>

    <table v-if="showTable2">
      <!-- 表格2内容 -->
    </table>
  </div>
</template>

使用第三方表格组件

结合 Element UI 或 Ant Design Vue 等 UI 库实现:

<template>
  <div>
    <el-radio-group v-model="currentTable">
      <el-radio-button label="table1">表格1</el-radio-button>
      <el-radio-button label="table2">表格2</el-radio-button>
    </el-radio-group>

    <el-table :data="activeData">
      <el-table-column prop="name" label="姓名"></el-table-column>
      <el-table-column prop="age" label="年龄"></el-table-column>
    </el-table>
  </div>
</template>

带过渡动画的切换

为表格切换添加过渡效果:

<template>
  <div>
    <transition name="fade" mode="out-in">
      <table v-if="showTable1" key="table1">
        <!-- 表格1内容 -->
      </table>
      <table v-else key="table2">
        <!-- 表格2内容 -->
      </table>
    </transition>
  </div>
</template>

<style>
.fade-enter-active, .fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}
</style>

选择哪种实现方式取决于具体需求。动态数据切换适合数据结构相同的表格,组件切换适合结构差异大的表格,条件渲染适合简单的切换场景,第三方组件能快速实现专业效果。

vue 实现table切换

标签: vuetable
分享给朋友:

相关文章

vue 页签实现

vue 页签实现

Vue 页签实现方法 在 Vue 中实现页签功能通常涉及动态组件、路由或状态管理。以下是几种常见的实现方式: 使用动态组件 通过 Vue 的 <component> 动态组件结合 v-…

vue怎么实现选中删除

vue怎么实现选中删除

实现选中删除功能的方法 在Vue中实现选中删除功能通常涉及以下几个关键步骤: 数据绑定与选中状态管理 使用v-model或v-for指令绑定列表数据,结合复选框或单选按钮实现选中状态管理。例如…

vue实现文字播放栏

vue实现文字播放栏

Vue 实现文字播放栏(跑马灯效果) 方法一:使用 CSS 动画 + Vue 数据绑定 通过 CSS 的 @keyframes 实现动画效果,结合 Vue 的动态数据绑定控制内容。 <t…

vue实现安全免登录

vue实现安全免登录

Vue 实现安全免登录的方案 免登录功能通常通过持久化认证状态(如 Token)实现,但需兼顾安全性。以下是基于 Vue 的常见实现方案: 基于 Token 的免登录 登录成功后存储 Token…

vue 实现简单登陆

vue 实现简单登陆

以下是一个使用 Vue 3 实现的简单登录功能示例,包含表单验证和基础交互逻辑: 创建 Vue 组件 <template> <div class="login-containe…

vue中如何实现循环

vue中如何实现循环

在 Vue 中实现循环 Vue 提供了 v-for 指令用于实现循环渲染列表数据。v-for 可以遍历数组、对象或数字范围,生成动态的 DOM 元素。 遍历数组 使用 v-for 遍历数组时,语法…