umy-ui 一个基于 vue 的 PC 端表格UI库,解决万级数据渲染卡顿问题,过万数据点击全选卡顿等等问题

npm安装

npm install umy-ui

按需引入

在main.js中添加按需引入代码

import { UTable } from 'umy-ui'
Vue.use(UTable)

示例

 <template>
  <u-table
    :data="tableData"
    :border="false"
    style="width: 100%">
    <template slot="empty">
          没有查询到符合条件的记录
     </template>
    <u-table-column
      prop="name"
      label="名字"
      width="180">
    </u-table-column>
    <u-table-column
      prop="sex"
      label="性别"
      width="180">
    </u-table-column>
    <u-table-column
      prop="age"
      label="年龄">
      <template v-slot="scope">
          <el-select v-model="scope.row.sex">
                           <el-option v-for="item in sexList" :key="item.value" :label="item.label" :value="item.value"></el-option>
                         </el-select>
      </template>
    </u-table-column>
  </u-table>
</template>

<script>
  export default {
    data() {
      return {
        sexList: [
           { value: 1,label: '男' },
           { value: 2,label: '女'},
           { value: 3,label: '未知'}
        ],
        tableData: [{
          sex: '男',
          name: '王小虎',
          age: '15'
        }, {
          sex: '女',
          name: '王小明',
          age: '15'
        }, {
          sex: '女',
          name: '王小丽',
          age: '15'
        }, {
          sex: '未知',
          name: '王小狗',
          age: '15'
        }]
      }
    }
  }
</script>

甚至你还能这样做,都是兼容的

使用element-ui中的table组件,在外层用u-table包裹起来就行了

 <template>
  <u-table
    :data="tableData"
    :border="false"
    :max-height="tableHeight"
    use-virtual
    @selection-change="handleSelectionChange"
  >
    <el-table-column
      align="center"
      type="selection"
      width="55"
    ></el-table-column>
    <el-table-column
      label="单位简称"
      prop="nameSimplify"
    ></el-table-column>
    <el-table-column
      label="级别"
      prop="levelCN"
    ></el-table-column>
  </u-table>
</template>

<script>
  export default {
    data() {
      return {
        sexList: [
           { value: 1,label: '男' },
           { value: 2,label: '女'},
           { value: 3,label: '未知'}
        ],
        tableData: [{
          sex: '男',
          name: '王小虎',
          age: '15'
        }, {
          sex: '女',
          name: '王小明',
          age: '15'
        }, {
          sex: '女',
          name: '王小丽',
          age: '15'
        }, {
          sex: '未知',
          name: '王小狗',
          age: '15'
        }]
      }
    }
  }
</script>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容