vue element 无限滚动加载,前端分页

vue+element 后台无分页时,数据量太大直接渲染会导致变慢或卡顿,此时前端可根据业务场景进行滚动加载或者分页,来减轻渲染的压力

【template】

  • {{item.code}}
暂无数据

【data】

dataTotal:[],
dataShow:[],

【methods】

// 后台数据
async getData(){
  const {data,code,message}=await api({})
  if(code===0){
	this.dataTotal=[];
	this.dataShow=[];
	if(data.length>50){
	  this.dataTotal=data;
	  this.dataShow=data.slice(0,50);
	}
  }
},
// 滚动加载
loadMore(e) {
  let self=this
  const h = e.target,
	clientHeight = h.clientHeight,
	scrollTop = h.scrollTop,
	scrollHeight = h.scrollHeight
  let tableNum = self.dataShow.length;
  if(clientHeight+scrollTop>=scrollHeight){
	let li_size = self.dataTotal.slice(tableNum, tableNum + 50);
	li_size.map(item => {
	  self.dataShow.push(item);
	});
	if (li_size.length === 0) {
	  this.$message.warning('已经到底啦')
	}
  }
},

你可能感兴趣的:(前端,vue,element,前端,vue,elementui,javascript)