当前位置:首页 > VUE

vue 实现table切换

2026-02-17 01:48:19VUE

Vue 实现 Table 切换的方法

使用 v-if 或 v-show 切换不同表格

通过条件渲染指令 v-ifv-show 可以快速切换不同的表格组件。v-if 是惰性的,适合切换频率低的场景;v-show 通过 CSS 控制显示,适合频繁切换。

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

    <table1 v-if="currentTable === 'table1'" />
    <table2 v-if="currentTable === 'table2'" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      currentTable: 'table1'
    }
  }
}
</script>

动态组件实现表格切换

使用 Vue 的 <component> 动态组件可以更灵活地切换表格,适合需要根据条件动态渲染不同组件的场景。

<template>
  <div>
    <button @click="currentComponent = 'Table1'">表格1</button>
    <button @click="currentComponent = 'Table2'">表格2</button>

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

<script>
import Table1 from './Table1.vue'
import Table2 from './Table2.vue'

export default {
  components: { Table1, Table2 },
  data() {
    return {
      currentComponent: 'Table1'
    }
  }
}
</script>

通过路由切换表格页面

如果表格需要作为独立页面展示,可以使用 Vue Router 实现路由级别的切换。

// router.js
const routes = [
  { path: '/table1', component: Table1 },
  { path: '/table2', component: Table2 }
]
<template>
  <div>
    <router-link to="/table1">表格1</router-link>
    <router-link to="/table2">表格2</router-link>

    <router-view></router-view>
  </div>
</template>

同一表格动态切换数据源

保持表格组件不变,仅通过改变数据源实现内容切换,适合表格结构相同但数据不同的场景。

<template>
  <div>
    <button @click="loadData('data1')">加载数据1</button>
    <button @click="loadData('data2')">加载数据2</button>

    <table>
      <tr v-for="item in tableData" :key="item.id">
        <td>{{ item.name }}</td>
      </tr>
    </table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [],
      dataSources: {
        data1: [{ id: 1, name: '数据1' }],
        data2: [{ id: 2, name: '数据2' }]
      }
    }
  },
  methods: {
    loadData(source) {
      this.tableData = this.dataSources[source]
    }
  }
}
</script>

使用第三方表格组件切换

对于 Element UI 或 Ant Design Vue 等 UI 库的表格组件,切换原理相同,只需替换为对应的组件标签即可。

vue 实现table切换

<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 v-if="currentTable === 'table1'" :data="data1"></el-table>
    <el-table v-if="currentTable === 'table2'" :data="data2"></el-table>
  </div>
</template>

以上方法可根据实际需求选择使用,简单场景推荐使用条件渲染,复杂场景可考虑动态组件或路由方案。数据驱动的方式在维护性和性能上通常更有优势。

标签: vuetable
分享给朋友:

相关文章

vue菜单实现

vue菜单实现

Vue 菜单实现方法 使用 Element UI 的菜单组件 Element UI 提供了现成的菜单组件,适合快速实现导航菜单。安装 Element UI 后,可以直接使用 el-menu 相关组件。…

vue实现订单

vue实现订单

Vue 实现订单功能 订单数据结构设计 订单数据通常包含以下字段: order: { id: String, // 订单ID userId: String,…

vue滚动实现

vue滚动实现

Vue 滚动实现方法 使用原生滚动 在 Vue 中可以通过 ref 获取 DOM 元素,调用原生滚动方法实现滚动效果。适用于简单场景。 <template> <div ref=…

vue 实现全屏

vue 实现全屏

Vue 实现全屏功能 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 完成。以下是一个完整的实现方案: 安装依赖(可选) 如果需要跨浏览器兼容性更好,可以安装 scre…

vue实现网站

vue实现网站

Vue 实现网站的基本步骤 Vue.js 是一个渐进式 JavaScript 框架,适合构建现代化的单页应用(SPA)或动态网站。以下是使用 Vue 实现网站的基本方法。 初始化 Vue 项目 使用…

vue 实现excel

vue 实现excel

Vue 实现 Excel 功能 前端导出 Excel 使用 xlsx 库可以轻松实现前端 Excel 导出功能。安装依赖: npm install xlsx 导出 Excel 示例代码: impo…