Vue之使用umy-ui库的u-table解决 el-table当存在大量数据时,界面操作卡顿。
提示:一、下面的1. 对应 二、下面的1.;2.则对应2.
错误排查:在使用中如果出现:readding 'style' undefined类似错误的, 可以先排查 u-table中height的值引起的。这里只以我这里出现的情况为基准作出此提示,仅供参考。
提示:需根据具体需求使用相应表格。例如:u-table 与 wx-grid的区别。
(具体:1.使用u-table 开启use-virtual不支持开展行,如果需要展开行,你需使用虚拟表格部分的ux展开行!
2.u-table不支持展开行,需要展开行使用ux-grid
3. ux-grid解决列多 行多导致卡的情况, u-table解决行多的情况,不解决列多的情况(如你的列超过70+,你可能就需要使用ux-grid了,因为此时你需要把列也虚拟))
重点!!!:umy-ui库官网:http://www.umyui.com/umycomponent/u-table-api(具体使用:官网有说明,建议使用前先看看用前须知!!!)
一、安装所需:
1.npm安装 umy-ui库:
npm install umy-ui
2.安装 babel-plugin-component(目的:借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。)
npm install babel-plugin-component -D
二、写入和配置:
1.main.js中写入
// ummy-ui库使用(注:我这里使用的是按需引入。)
import 'umy-ui/lib/theme-chalk/index.css';// 引入样式
import {UTableColumn, UTable,UxGrid,UxTableColumn} from 'umy-ui'; // 按需引入组件
Vue.use(UTableColumn);
Vue.use(UTable);
Vue.use(UxGrid);
Vue.use(UxTableColumn);
2. babelrc文件中plugins添加:
- {
- "plugins": [
- [
- "component",
- {
- "libraryName": "umy-ui",
- "styleLibraryName": "theme-chalk"
- }
- ]
- ]
- }
三、使用代码:
- <div ref="refTableBox">
<u-table- ref="plTable"
- :data="tableData"
- :height="changeHeight" // 表格高度(不给高度,或者高度为0,那么就是自适应;不给height或者不给maxheight,虚拟滚动直接会关闭)。 如果你数据多而且高度为0或者为空,那么就会卡死,不支持百分比
- use-virtual // 开启虚拟表格
- showBodyOverflow="title"
- showHeaderOverflow="title"
- :row-height="rowHeight"
- row-id="uid" // 注意区别:行数据的 id;在使用虚拟树表格时,该属性是必填的。而row-key是针对不是虚拟树表格时使用的。
- :treeConfig="{children: 'children',}" // 注意区别: u-table大数据树形表格配置项,必去开启row-id 且 开启use-virtual 才有效的配置。而 tree-props 是基本树表格(即 雷同el_table)且是于row-key一起使用的。
- // 下面这些雷同el_table(这里就不放以下方法了,自己使用中可以先将这些剔除)
- :cell-style="changeCellStyle"
- :row-class-name="tableRowIndex"
- @select="handleOneSelection"
- @select-all="handleAllSelection"
- v-loading="loading"
- :highlight-current-row="true"
- border>
- <u-table-column label="人物信息">
- <u-table-column prop="name" label="姓名"></u-table-column>
- </u-table-column>
- </u-table>
- </div>
- data中:
- tableData: [],
- changeHeight: 0, // 表格高度
- rowHeight: 35, // 行高( 注: 如果你这里给行高为50,那么你表格行会出现错乱,不要问为啥,因为你可以看看控制台看节点的高是多少,是55,而你这里给50就有问题!)但是由于我在表格的样式中进行了更改所以这里可以使用相同的高度.
- mounted(挂载完):
- this.changeHeight = this.$refs.refTableBox.offsetHeight; // 挂载完后就对table的高度先进行赋值.
- this.$nextTick(() => { // 这是每当浏览器窗口变动时,对table的高度进行更新.
- window.onresize = () => {
- // let _temp = window.innerHeight - this.$refs.element.offsetTop;
- // console.log('`~~~~~~~~~内容高度 = 窗口的文档显示区的高度 - 元素距离浏览器顶部的高度', _temp, )
- this.changeHeight = this.$refs.refTableBox.offsetHeight;
- }
- });
- methods中:
- scrollBottom () { // 表格滚动到底部
- this.$refs.plTable.scrollBottom()
- },
- pagingScrollTopLeft (val) { // 让表格滚动条回到顶部和左侧
- // ...top,left -> 距离顶部, 左侧距离。 不传值默认为0
- this.$refs.plTable.pagingScrollTopLeft(val, 0)
- },
Vue之使用umy-ui库的u-table解决 el-table当存在大量数据时,界面操作卡顿。的更多相关文章
- vue中使用第三方UI库的移动端rem适配方案
需求:使用vue-cli脚手架搭建项目,并且使用第三方的UI库(比如vant,mint ui)的时候,因为第三方库用的都是用px单位,无法使用rem适配不同设备的屏幕. 解决办法:使用px2rem-l ...
- vue相关的前端UI库
1,element-ui 这个笔者用的最多,但是官网不知道咋回事.打不开,难道被黑了?! 地址(http://element-ui.cn/#/zh-CN/component/installation) ...
- vue饿了么UI库-笔记
1. :rules="{required: true, message: '有效期不能为空'}" :rules="{type:'date',required: true, ...
- 通过UI库深入了解Vue的插槽的使用技巧
Vue官网对于插槽的介绍比较简略,插槽本身也比较"烧脑",很容易看晕,我就一直没看懂,直到 使用了element-plus的组件的插槽. 其实我们可以换一个角度来理解插槽,就会豁然 ...
- vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图
vue移动端金融UI组件库滴滴MandMobile面向金融场景设计附功能思维导图 Mand Mobile是面向金融场景设计的移动端组件库,基于Vue.js实现.目前已实际应用于滴滴四大金融业务板块的1 ...
- vue常见前端UI库
vue常见前端UI库 VUE资源汇总:https://github.com/RuMengkai/awesome-vue VUX 项目主页:https://vux.li/#/ github地址:http ...
- ElementUI(vue UI库)、iView(vue UI库)、ant design(react UI库)中组件的区别
ElementUI(vue UI库).iView(vue UI库).ant design(react UI库)中组件的区别: 事项 ElementUI iView ant design 全局加载进度条 ...
- vue实现选项卡切换--不用ui库
vue的ui库中基本都有选项卡切换的组件,但是在项目开发过程中却不一定能很好的为我们所用,因为里面的样式和 一些状态并不能很好的根据我们的项目需求进行定制.最近项目中使用的是vant-ui中的标签页, ...
- 基于 Vue.js 之 iView UI 框架非工程化实践记要
像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引用一下,不需要就删除.故观念使然,尽管 Nuget 和 Maven ...
- 【分享】Vue 资源典藏(UI组件、开发框架、服务端、辅助工具、应用实例、Demo示例)
Vue 资源典藏,包括:UI组件 开发框架 服务端 辅助工具 应用实例 Demo示例 element ★11612 - 饿了么出品的Vue2的web UI工具套件 Vux ★7503 - 基于Vue和 ...
随机推荐
- 11款Linux数据恢复工具!
转载:<Linux就该这么学> - 必读的Linux系统与红帽RHCE认证免费自学书籍 (linuxprobe.com) 11款最棒的Linux数据恢复工具发布啦! | <Linux ...
- 嵌入式Linux—输入子系统
输入系统 常见的输入设备有键盘.鼠标.遥控杆.书写板.触摸屏等等,用户通过这些输入设备与Linux系统进行数据交换. 内核中怎样表示一个输入设备 // include/linux/input.h st ...
- vue基础——命名路由
路由配置,是vue使用的基础中的基础,采用传统的方式会有些麻烦且不清晰,而命名路由的方式,无论path多长多繁琐,都能直接通过name就匹配到了,十分方便,所以,强烈推荐使用命名路由的方式 传统的方式 ...
- 基于shp2pgsql将shape文件导入到postgresql中
1. 概述 Shapefile是常用的空间数据文件格式,PostgreSQL数据库是常用的关系型数据库 PostGIS是一个PostgreSQL的空间数据库扩展 ,提供空间信息服务功能,更详细的信息可 ...
- K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别
背景 2020 年 12 月初,Kubernetes 在其最新的 Changelog 中宣布,自 Kubernetes 1.20 之后将弃用 Docker 作为容器运行时. 弃用 Docker 带来的 ...
- conda迁移虚拟环境
Conda离线迁移虚拟环境主要是两步: 1 在原环境中打包 2 将打好的包copy到目标环境的指定位置 打包的命令很简单 conda pack -n 虚拟环境名 当试图导出base时,报错了 Cond ...
- TensorFlow的基础结构
Tensorflow 是非常重视结构的, 我们得建立好了神经网络的结构, 才能将数字放进去, 运行这个结构. 这个例子简单的阐述了 tensorflow 当中如何用代码来运行我们搭建的结构. 创建数据 ...
- 前端常见的Vue面试题目汇总
请说一下响应式数据的原理 默认Vue在初始化数据时,会给data中的属性使用Object.defineProperty重新定义所有属性,当页面到对应属性时,会进行依赖收集(收集当前组件中的watche ...
- CSS布局display值inline、block、inline-block区别
inline前后不会有换行,block前后会有换行,inline-block前后不会有换行,但内部会换行且可以设置高宽.,如下图所示:
- SAR成像(六):距离徙动矫正
1.什么是距离徙动? 距离徙动产生原因是合成孔径雷达的运动平台与目标之间的相对运动.对于地面一静止的点目标,当它处于雷达波束照射范围内的时间中时,随着飞行载体的运动,它与雷达飞行载体之间的距离会不断的 ...