zoukankan      html  css  js  c++  java
  • 大数据表格渲染

    假如后端一次性给你10000条数据,你渲染数据时,很有可能直接造成页面卡死

    网上有一个很好用的包(vxe-table),专门来解决这个问题 https://xuliangzhan_admin.gitee.io/vxe-table/#/table/scroll/scroll

    1.安装

    npm install xe-utils vxe-table vxe-table-plugin-element element-ui  //适配element-ui  如果不需要,可以不用下载element-ui

    2.main.js引入

    import 'xe-utils'
    import VXETable from 'vxe-table'
    import VXETablePluginElement from 'vxe-table-plugin-element'
    import 'vxe-table/lib/index.css'
    import 'vxe-table-plugin-element/dist/style.css'

    Vue.use(VXETable)
    VXETable.use(VXETablePluginElement)
    Vue.use(ElTableFooter)
     
    3.页面中使用
    <template>
      <div>
        <!-- <el-table :data="tableData" :height="300" style=" 100%">
          <el-table-column label="name" prop="name" sortable></el-table-column>
          <el-table-column label="sex" prop="sex"></el-table-column>
          <el-table-column label="age" prop="age"></el-table-column>
          <el-table-column label="address" prop="address" show-overflow></el-table-column>
        </el-table> -->
        <vxe-table border show-overflow highlight-hover-row height="300" :sort-config="{trigger: 'cell'}" :data="tableData" @selection-change="selectChangePoints">
          <vxe-table-column type="selection" width="100"></vxe-table-column>
          <vxe-table-column field="name" title="name"></vxe-table-column>
          <vxe-table-column field="sex" title="sex"></vxe-table-column>
          <vxe-table-column field="age" title="age"></vxe-table-column>
          <vxe-table-column field="address" title="address" show-overflow>
            <template slot-scope="scope">
              <span @click="editPointData(scope.row)">编 辑</span>
            </template>
          </vxe-table-column>
        </vxe-table>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          tableData: []
        };
      },
      created() {
        this.getData();
      },
      methods: {
        getData() {
          for (let i = 0; i < 10000; i++) {
            let obj = {
              name: "wang" + i,
              sex: "男",
              age: 13,
              address: "sadasdsad" + i
            };
            this.tableData.push(obj);
          }
        },
        editPointData(row) {
          console.log(row, "asdasdsad");
        },
        selectChangePoints(point){
          console.log(point)
        }
      }
    };
    </script>
    
    <style  scoped>
    </style>
    

     注意:vue版本需要再2.6以上

     
  • 相关阅读:
    套接字I/O模型-WSAAsyncSelect
    套接字I/O模型-完成端口IOCP
    套接字I/O模型-WSAEventSelect(转载)
    Win7+VS2010环境下CEGUI 0.8.4编译过程详解
    数组去重统计排序
    计算当前月有几天
    前端开发仓库
    Jquery中bind(), live(), on(), delegate()四种注册事件的优缺点,建议使用on()
    图表那些事
    图标字体,矢量图标
  • 原文地址:https://www.cnblogs.com/wangqi2019/p/13153664.html
Copyright © 2011-2022 走看看