electron中vue,table渲染大量数据卡顿

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了electron中vue,table渲染大量数据卡顿相关的知识,希望对你有一定的参考价值。

参考技术A 在这个electron项目里,使用element-ui中的el-table渲染了很多数据(大于100条,每条中输入框不小于10个),造成了 输入时十分卡顿,内存占用达到了100M,需求方又不想分页,只能寻求折中的方案。

该方案内置了el-table,也就是说你可以不用使用element-ui也是可以用的。

首先安装pl-table

npm i pl-table

main.js中

import plTable from 'pl-table'

import 'pl-table/themes/index.css'

Vue.use(plTable)

这里写一下我的pl-table使用时候的配置:

<pl-table

            ref="plTable"

            :datas="showTableData"

            :row-height="65"

            :pt-total="filterTableData.length"

            :page-size="pageSize"

            :excess-rows="1"

            :height-change="false"

            :current-page="currentPage"

            :page-sizes="[100, 200, 300, 400, 500]"

            no-data-height="calc(100vh - 154px)"

            auto-resize

            use-virtual

            @handlePageSize="handlePageSize"

          >

默认可以使用分页,更多api请自行百度。

如果表格无法显示:

.electron-vue中webpack.web.config.js 我这里是52-58行替换



        test: /\.js$/,

        use: 'babel-loader',

        include: [ path.resolve(__dirname, '../src/renderer') ],

        exclude: file => /node_modules/.test(file) && !/\.vue\.js/.test(file) && !/pl-table/.test(file)

      

然后重启electron 就可以显示了。

然后分页和表格的间距默认是20px。我们这里改一下,不要这么大的间距

.plTableBox .myPagination

  padding-top: 0;

以上是关于electron中vue,table渲染大量数据卡顿的主要内容,如果未能解决你的问题,请参考以下文章

electron-vue在使用element-ui时部分组件无法显示问题

VUE—数据渲染

electron和vue的关系

vue-element动态渲染表头(el-table-column)

Vue - Table表格渲染

electron-vue架构解析4-页面元素渲染过程分析(原)