118 lines
2.9 KiB
Markdown
118 lines
2.9 KiB
Markdown
# el-bigdata-table
|
||
|
||
用来实现el-table展示大数据
|
||
流畅渲染万级数据并不会影响到el-table的原有功能
|
||
|
||
[点击查看在线demo](https://code-farmer-i.github.io/el-bigdata-table/dist/)
|
||
|
||
## Install
|
||
```shell
|
||
npm install el-bigdata-table -S
|
||
```
|
||
|
||
## webpack.base.conf.js
|
||
因代码中使用了es6的语法 所以需要添加babel配置
|
||
``` javascript
|
||
'use strict'
|
||
const path = require('path')
|
||
const utils = require('./utils')
|
||
const config = require('../config')
|
||
const vueLoaderConfig = require('./vue-loader.conf')
|
||
// 此处为添加的配置
|
||
const fs = require('fs')
|
||
|
||
function resolve (dir) {
|
||
return path.join(__dirname, '..', dir)
|
||
}
|
||
|
||
//此处为添加的配置
|
||
let dirsName = fs.readdirSync(resolve('node_modules')).filter(dirName => /el-bigdata-table/.test(dirName))
|
||
const includesDirs = dirsName.map(dir => resolve(`node_modules/${dir}/src`))
|
||
|
||
module.exports = {
|
||
... //省略的代码
|
||
module: {
|
||
rules: [
|
||
// 省略代码...
|
||
// 此处有添加babel-loader配置 ‘...includesDirs‘
|
||
{
|
||
test: /.js$/,
|
||
loader: 'babel-loader',
|
||
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client'), ...includesDirs]
|
||
},
|
||
{
|
||
test: /.(png|jpe?g|gif|svg)(?.*)?$/,
|
||
loader: 'url-loader',
|
||
options: {
|
||
limit: 10000,
|
||
name: utils.assetsPath('img/[name].[hash:7].[ext]')
|
||
}
|
||
},
|
||
```
|
||
|
||
## Quick Start
|
||
``` javascript
|
||
// main.js
|
||
import 'el-bigdata-table'
|
||
```
|
||
|
||
### 基础用法
|
||
```html
|
||
<template>
|
||
<!-- 使用 useVirtual 属性开启虚拟滚动 使用虚拟滚动时,必须要固定表格高度和行高 -->
|
||
<el-table
|
||
:data="tableData"
|
||
height="400"
|
||
useVirtual
|
||
>
|
||
<el-table-column
|
||
type="index"
|
||
width="100"
|
||
fixed
|
||
></el-table-column>
|
||
<el-table-column
|
||
prop="date"
|
||
label="日期"
|
||
width="180">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="name"
|
||
label="姓名"
|
||
width="180">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="address"
|
||
label="地址">
|
||
</el-table-column>
|
||
</el-table>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
tableData: Array.from({length: 10000}, () => ({
|
||
date: '2016-05-03',
|
||
name: '王小虎',
|
||
address: '上海市普陀区金沙江路 1516 弄'
|
||
}))
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
```
|
||
|
||
## API
|
||
|
||
### 新增 Props:
|
||
|
||
属性 | 说明 | 类型 | 默认值
|
||
:-------: | ------- | :-------: | :-------:
|
||
use-virtual | 是否开启虚拟滚动 | Boolean | false
|
||
row-height | 行高(必须要设置正确的行高,否则会导致表格计算不正确) | Number | 48
|
||
excess-rows | 表格可视区域上方与下方额外渲染的行数,行数越多表格接替渲染效果越好,但越耗性能 | Number | 5
|
||
use-row-key | 大部分场景下可以不使用rowKey来最大化复用dom,极大的提升渲染效率 | Boolean | false
|
||
|
||
作者wx: ckang1229
|
||
|