首页 > 建站教程 > 前端框架 >  vue keep-alive组件渲染大数据,来回切换非常卡顿正文

vue keep-alive组件渲染大数据,来回切换非常卡顿

我爱模板网用vue开发项目时,有个页面有140万条数据,每页显示2000条数据,一开始用element-plus的el-table,表格滚动时卡顿严重,然后用vxe-table的虚拟渲染解决了这个问题。现在的问题是,从其他tab页(页面级的tab)切换回来,会卡一下,因为2000条数据,渲染时多少还是会卡一下,页面渲染用了keep-alive。keep-alive还原页面时,渲染大数据卡顿导致的。如下图,当从“事件列表查看”返回“事件列表”,就会卡一下,客户不希望有这个问题。所以,就考虑,能不能在tab切换时,不要渲染,等切换完了,再渲染:


vue keep-alive组件


keep-alive多两个生命周期,activated 和 deactivated,从这两个生命周期里,出手即可:


1、定义一个变量来控制大数据列表的显示隐藏:

isActived: false


2、在vxe-table上控制是否渲染

<vxe-table v-show="isActived" ...


注意,这里不能用v-if,否则原先的状态,如翻到第几页了等都会没了,用v-show即可


3、activated和deactivated控制条件

activated(){
setTimeout(() => {
this.isActived = true
}, 100)
},
deactivated(){
setTimeout(() => {
this.isActived = false
}, 100)
}