Vxe table - 基于Vue的宝藏级 table 组件

文章目录

  • 前言
  • 一、Vxe-table
    • 功能点
    • 计划
  • 二,安装
  • 三,引入
  • 四,示例用法


前言

Vxe table - 基于Vue的宝藏级 table 组件_第1张图片

对于表格来说,也许我们会遇到一个需求就是表格中的单元格可编辑,如果我们使用的是ElementUI也许不太好办,因为官方没有可编辑的这个操作,有可能使用的方法就是写一个输入框,当点击的时候控制内容与输入框的显示于隐藏。今天介绍另一种方式就是使用vxe-table

开发文档
git地址

vxe-table一个基于 Vue(支持 Vue3) 的 PC 端全功能表格组件,满足你对 table 绝大多数需求,可与任意组件库完美兼容。我之前做过一个广告数据监测的项目,要展示的数据量较大,配element 的 table 组件可把我折腾坏了,后来找了挺多开源表格,有各种各样的问题,最后锁定了 Vxe table ,用上才发现它是如此强大。


一、Vxe-table

VXE Table面向现代浏览器,高效的简洁 API 设计,模块化表格、按需加载、扩展接口,为单行编辑表格而设计,支持增删改查及更多扩展,强大的功能的同时兼具性能。

Vxe-table 提供诸多功能:虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、虚拟列表、模态窗口、自定义模板、渲染器,每一个功能做细了都不容易。

功能点

  • 基础表格
  • 高级表格
  • 斑马线条纹
  • 多种边框
  • 单元格样式
  • 列宽拖动
  • 最大高度
  • 自适应宽高
  • 固定列
  • 多级表头
  • 表尾数据
  • 高亮行或列
  • 序号
  • 单选框
  • 复选框
  • 下拉选项
  • 开关
  • 排序
  • 多字段组合排序
  • 筛选
  • 合并单元格
  • 合并表尾
  • 导入/导出/打印
  • 显示/隐藏列
  • 加载中
  • 格式化内容
  • 自定义插槽 - 模板
  • 快捷菜单
  • 展开行
  • 分页
  • 表单
  • 工具栏
  • 下拉容器
  • 虚拟列表
  • 虚拟树
  • 增删改查
  • 数据校验
  • 数据代理
  • 键盘导航
  • 弹窗
  • 渲染器
  • 虚拟滚动
  • 虚拟合并
  • (pro) 单元格区域选取
  • (pro) 单元格复制/粘贴
  • (pro) 单元格查找和替换

作者对 Vxe-table 的维护频率很高,从 2019 年到现在已经发了 4 个大版本,最新的 4.0 已经支持 Vue3。对于它后续升级及支持可以比较放心了。

计划

  • v1.0 基于 vue2.6,支持所有主流的浏览器,实现表格的一切实用的功能
  • v2.0 基于 vue2.6,支持所有主流的浏览器,同时兼具功能与性能
  • v3.0 基于 vue2.6,支持现代浏览器并保留兼容 IE11
  • v4.0 基于 vue3.x,只支持现代浏览器,不支持 IE
  • 下一阶段:sticky 渲染模式、将虚拟滚动提升到极致、虚拟滚动动态行高、数据图表可视化

二,安装

npm i xe-utils vxe-table

三,引入

样式文件需要单独引入。否则使用图标的时候是没有效果的哟!

import { createApp } from 'vue'
import VXETable from 'vxe-table'
import 'vxe-table/lib/style.css'

createApp(App).use(VXETable).mount('#app')

四,示例用法

<template>
  <div>
    <vxe-table :data="tableData">
      <vxe-column type="seq" title="Seq" width="60"></vxe-column>
      <vxe-column field="name" title="Name"></vxe-column>
      <vxe-column field="role" title="Role"></vxe-column>
      <vxe-colgroup title="Group1">
        <vxe-column field="sex" title="Sex"></vxe-column>
        <vxe-column field="address" title="Address"></vxe-column>
      </vxe-colgroup>
    </vxe-table>
  </div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'

const tableData = ref([
  { id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', address: 'Shenzhen' },
  { id: 10002, name: 'Test2', role: 'Test', sex: 'Man', address: 'Guangzhou' },
  { id: 10003, name: 'Test3', role: 'PM', sex: 'Man', address: 'Shanghai' }
])
</script>

你可能感兴趣的:(vue.js,前端,javascript)