vue + element table數據過多實現懶加載


  components: {
    CloseButton,
    Pagination,
    Tree,
    Dialog
  },
  directives: {
    loadmore: {
      bind (el, binding) {
        const selectWrap = el.querySelector('.el-table__body-wrapper')
        selectWrap.addEventListener('scroll', function () {
          const scrollDistance = this.scrollHeight - this.scrollTop - this.clientHeight
          // 判斷是否到底,scrollTop為已滾動到元素上邊界的像素數,scrollHeight為元素完整的高度,clientHeight為內容的可見寬度
          if (scrollDistance <= 10) {
            binding.value()
          }
        })
      }
    }
  },
el-table.standard-table.management-table(
                  :data="tableData.data"
                  height="100%"
                  :ref="tableData.tableRef"
                  @select="handleCheckboxSelect"
                  @row-click="handleRowSelect" v-loadmore='loadmore'
                )
methods: {
    // table滾動到底部觸發該事件 loadNum: 0
    loadmore () {
      this.loadNum++
      this.tableData.data = [...this.tableData.data, ...this.listEach(this.loadNum)]
    },
    // 每次顯示6條數據,滾動到底部數據加6
    listEach (Num) {
      const NumStart = ((Num - 1) * 5) + 6
      const NumEnd = (Num * 5) + 6
      const tableDataEach = this.listArray.slice(NumStart, NumEnd)
      return tableDataEach
    } //listArray是table獲取的所有數據
    // 點擊左側的樹結構獲取對應的數據
    async handleNodeClick (event, treeId, treeNode) {
      const idArr = []
      const idResArr = this.findNodeChildren(treeNode, idArr)
      const ids = idResArr.join(',')
      this.ids = ids
      const parmas = {
        id: '',
        name: '',
        ids: ids
      }
      const data = await getListQualityDefectReq(parmas)
      if (!data) return
      if (data.success) {
        this.listArray = data.data
        this.loadNum = 0
        this.tableData.data = this.listArray.slice(0, 6)
      }
    },
}

 參考: https://blog.csdn.net/qq_52912134/article/details/117958214

https://segmentfault.com/a/1190000018756141?utm_source=tag-newest


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM