Vue 之 使用umy-ui虚拟表格
目录
一、下载umy-ui umy-ui开发文档
二、创建存放umy-ui的文件 umy-ui.js
三、在babel.config.js中进行设置
四、umy-ui.js的优势
HTML代码
JS代码
tip
一、下载umy-ui umy-ui开发文档
npm install umy-ui || yarn add umy-ui
二、创建存放umy-ui的文件 umy-ui.js
//完整引入
import Vue from 'vue';
import UmyUi from 'umy-ui'
import 'umy-ui/lib/theme-chalk/index.css';// 引入样式Vue.use(UmyUi);
最好使用按需引入,借助 babel-plugin-component,以达到减小项目体积的目的。
npm install babel-plugin-component
三、在babel.config.js中进行设置
module.exports = {presets: ['@vue/app'],plugins: [["component", {'libraryName': "umy-ui","styleLibraryName": "theme-chalk"}, "umy-ui"]]
}
按需引入
import Vue from 'vue';
import {UTableColumn,UTable,UxGrid,UxTableColumn
} from 'umy-ui';Vue.use(UTableColumn);
Vue.use(UTable);
Vue.use(UxGrid);
Vue.use(UxTableColumn);
在main.js中导入一下文件即可,当然以上代码也可以直接写到main.js中
四、umy-ui.js的优势
最大的好处是使用虚拟表格,当数据非常之庞大的时候,用虚拟表格不会显得卡顿
HTML代码
<template><div class="about-layout"><!-- ref : 可以用来绑定数据,做虚拟表格height: 绑定高度,若不绑定,自适应高度show-header-overflow 标题过长,是否显示省略号show-overflow 内容过长时显示为省略号 border 显示纵向边框 selection-change 监听用户选择了哪行,可以用于多选--><ux-gridref="plxTable":height="$store.state.plxTableHeightOne":show-header-overflow="true":show-overflow="true"@selection-change="selectVehicleInfo"border><!-- tableHead: 表格标题的数据列表resizable: 列是否允许拖动列宽调整大小title: 设置表格的标题field: 设置表格的显示内容sortable: 是否允许列排序--><!-- 使用插槽,可以对数据进行过滤相当于覆盖了field的值--><ux-table-column type="checkbox" width="40" /> //监听用户选择了哪行,可以用于多选<ux-table-columnv-for="(item, index) in tableHead"min-width="120"align="center":resizable="true":key="index":title="item.label":field="item.prop":sortable="item.sortable"><template slot-scope="scope">//针对 喝 这一列进行操作 比如可以更改颜色<div v-if="scope.column.property === 'drink'":style="drinkStyle(scope.column.property)">{{tableFiilter(scope.column.property,scope.row[scope.column.property])}}</div><div v-else>{{tableFiilter(scope.column.property,scope.row[scope.column.property])}}</div></template></ux-table-column></ux-grid></div>
</template>
JS代码
export default {data() {return {// 标题列表数据tableHead: [{label: "吃",prop: "eat", //需要对应数据中的字段名,否则无效sortable: true,//是否需要排序},{label: "喝",prop: "drink", //需要对应数据中的字段名,否则无效},{label: "玩",prop: "play", //需要对应数据中的字段名,否则无效sortable: true,//是否需要排序},],// 过滤吃的数据eatObj: {D: "饭",Y: "包子",R: "馒头",S: "辣条",},tabData:[]};},props: {},methods: {//过滤表格 value === D Y R S 过滤一下//prop 字段名 value 字段值tableFiilter(prop, value) { //可封装成通用方法//没内容时,自动填充'-'if(val === '' || val === undefined || val === null){return '-'}else{//内容过滤if (prop === "eat") {return this.eatObj[value];}else{return value}}},//喝 字段值样式操作drinkStyle(value){if(value === '水'){return {color:'green'}}}//用户选择的行selectVehicleInfo(selection){console.log(selection)}// 获取数据getTableData(){let params = {page:1,pageSize:10}getTableData(params).then(res => {if(res.code !== 200){return this.$Message('请求发生错误')}this.tabData = res.data// 调用虚拟表格reloadData方法 实现虚拟表格this.$refs.plxTable.reloadData(this.tabData);})}},created() {this.getTableData()},
};
tip
过滤那个方法可以封装一下
Vue 之 使用umy-ui虚拟表格相关推荐
- vue + elment ui打印表格数据
vue + elment ui打印表格数据 主要的原理就是 在vue项目中 通过调用浏览器自带的打印功能,完成对table数据的打印 解决表格错位 以及elment ui 双重表头的问题 封装一下打印 ...
- 【vue】Element UI实现表格表头纵向显示
element实现表格表头纵向显示 我们正常使用Element UI写表格的时候,<el-table-column/> 标签里面都是纵向的.那么我们的需求有时候会要求行列转换,那么来看看咋 ...
- 【分享】Vue 资源典藏(UI组件、开发框架、服务端、辅助工具、应用实例、Demo示例)...
Vue 资源典藏,包括:UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和 ...
- element ui设置表格表头高度和每一行的高度
填坑记录:今天用element ui的表格组件做用户信息展示,直接拉取的官网的代码过来,发现表头和每一行都太高了,如下: 因为第一次使用element ui的表格组件,不太清楚会遇到这样的坑,以为能轻 ...
- 大数据量树形数据表格展示, 虚拟表格,el-table, umy-ui, 表格懒加载
1. 出现的问题 要展示树形数据表格,根据当前点击的表格行去请求新的数据并展示, 基于这种情况遇到以下问题 1). 当树形表格数据层级大于五级且数据量较多时, 浏览器崩溃 2). 当数据条数展示超出5 ...
- vue3+Naive UI数据表格基本使用方式
一.基础使用方式 1.引入表格及数据 <-- 表格标签 --> <n-data-table :bordered="false" :single-line=&quo ...
- 用vue优雅地编写UI组件的几条指导原则
前言 最近在尝试写几个UI组件,并通过阅读element-ui的源码,与其反复比较,然后认真思考,最后总结出一些自己的一些心得和体会.在造轮子的过程中,既巩固了html,css,js基础,又加深了对v ...
- iView 3.3.0 发布,基于 Vue.js 的企业级 UI 组件库
iView 3.3.0 发布了,代号 Transistor ,iView 是一套基于 Vue.js 的企业级 UI 组件库,主要服务于 PC 界面的中后台产品. 本次更新如下: https://www ...
- npm创建Vue工程【element UI】
npm创建Vue工程[element UI] 步骤 # 初始化一个名为 hello-vue 的Vue工程 vue init webpack hello-vue# 进入 hello-vue 工程 cd ...
最新文章
- nGrinder性能测试框架安装步骤
- 全面覆盖CV任务!这个国产“书生”只学10%内容,性能就超越同行
- TTS Text-to-speech(文字转语音)服务
- git 怎么跟踪空目录
- android studio生成签名导打包的方法
- Spring Boot 集成 Ehcache 缓存,三步搞定!
- 强烈推荐:事情污,但算法不污,每个想称为大牛的码农都该看,深受启发!...
- LeetCode题目Java代码解答 (详细解释!!!)
- 如何将两张图片合成一张?
- Google SRE: SLI、SLO、SLA 、Error Budget 详解
- opengl_纹理过滤
- [Maven实战-许晓斌]-[第二章]-2.2基于UNIX系统安装maven
- 杨建:网站加速--实例分析篇
- 校园网dns服务器可以自动么,校园网应有自己的DNS服务
- C语言 读写锁pthread_rwlock_init
- Android Studio 4.2 中Button的Backgroud背景设置默认为蓝紫色且无法修改的问题,及Button控件中英文字母全部默认显示为大写的解决方法
- centos7建站操作步骤
- 利用PS快速去除图片中的红章子
- Linux启动过程详解
- 选股公式函数汇总解释