vue2.0解决el-table无限滚动解决数据量大前端界面渲染耗时或卡顿问题

3 篇文章 0 订阅
2 篇文章 0 订阅

vue相关依赖版本

{
  "name": "vue-demo",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "core-js": "^3.6.5",
    "el-table-infinite-scroll": "^1.0.10",
    "element-ui": "^2.15.10",
    "vue": "^2.6.11",
    "vue-router": "^3.2.0",
    "vuex": "^3.4.0"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-plugin-vuex": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vue/eslint-config-standard": "^5.1.2",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-import": "^2.20.2",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-promise": "^4.2.1",
    "eslint-plugin-standard": "^4.0.0",
    "eslint-plugin-vue": "^6.2.2",
    "node-sass": "^4.12.0",
    "sass-loader": "^8.0.2",
    "vue-template-compiler": "^2.6.11"
  }
}

安装

npm install el-table-infinite-scroll@1.0.10

main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

import elTableInfiniteScroll from 'el-table-infinite-scroll'

Vue.config.productionTip = false
Vue.use(ElementUI)
Vue.use(elTableInfiniteScroll)
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

app.vue

<template>
  <div id="app">
    <el-table
      :data="tableData"
      v-loading="loading"
      v-el-table-infinite-scroll="loadTable"
    >
      <el-table-column
        label="id"
        prop="date"
      ></el-table-column>
      <el-table-column
        label="名称"
        prop="name"
      ></el-table-column>
      <el-table-column
        label="地址"
        prop="address"
      ></el-table-column>
      <el-table-column
        label="省份"
        prop="province"
      ></el-table-column>
      <el-table-column
        label="城市"
        prop="city"
      ></el-table-column>
      <el-table-column
        label="压缩包"
        prop="zip"
      ></el-table-column>
    </el-table>
  </div>
</template>
<script>
export default {
  data () {
    return {
      title: 'vue',
      mytodo: '',
      todos: [
        { text: '吃饭', done: false },
        { text: '睡觉', done: false },
        { text: '写代码', done: false }
      ],
      saveDATA: [],
      tableData: [],
      count: 5,
      loading: false
    }
  },
  computed: {
  },
  created () {
    this.init()
  },
  methods: {
    init () {
      this.saveDATA = []
      for (let i = 0; i < 1000; i++) {
        this.saveDATA.push({
          date: i,
          name: '王小虎' + i,
          address: '1518',
          province: 'github:',
          city: 'divcssjs',
          zip: 'divcssjs' + i
        })
      }
    },
    loadTable () {
      this.loading = true
      if (this.tableData.length < this.saveDATA.length) {
        const data = this.tableData.concat(
          this.saveDATA.slice(this.tableData.length, this.tableData.length + this.count)
        )
        this.$set(this, 'tableData', data)
      }
      this.loading = false
    }
  }
}
</script>
<style lang="scss">
li.done {
  text-decoration: line-through;
  color: red;
}
</style>

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue2.0ElementUI2.0中使用el-table表格组件时,自适应高度可以通过以下步骤来实现: 1. 确定数据源 首先,我们需要确定用于填充表格的数据源。在el-table中,数据通常以数组的形式传递,其中每个数组元素代表表格中的一行数据。 2. 计算表格高度 在Vue中,我们可以使用计算属性来动态计算表格的高度。计算属性会根据数据源的变化自动更新表格高度。例如,我们可以使用下面的代码来计算表格高度: computed: { tableHeight: function() { // 获取窗口可见区域高度 var viewportHeight = window.innerHeight; // 计算表格头和分页组件的高度 var tableHeaderHeight = this.$refs.table.$el.querySelector('.el-table__header-wrapper').offsetHeight; var paginationHeight = this.$refs.pagination.$el.offsetHeight; // 计算表格内容区域的高度 var contentHeight = viewportHeight - tableHeaderHeight - paginationHeight - 20; return contentHeight; } } 在上面的代码中,我们首先获取窗口可见区域的高度,然后根据表格头和分页组件的高度计算表格内容区域的高度。最后,将计算出的高度返回。 3. 绑定表格高度 我们将计算属性中计算出的表格高度绑定到el-table组件中的height属性上,以实现自适应高度。例如,我们可以使用下面的代码将表格高度绑定到el-table组件上: <el-table :data="tableData" ref="table" :height="tableHeight"> 在上面的代码中,我们首先使用data属性传递数据源,然后使用ref属性给el-table组件添加一个引用,最后使用height属性将计算属性中计算出的表格高度绑定到组件上。 通过上述方法,我们可以在Vue2.0ElementUI2.0中实现自适应高度的el-table表格组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值