使用动态列的表格初次加载时出现塌陷
解决方法
- 首先检查你的布局是否有问题,具体方法是页面生成后发生高度塌陷再使用控制台缩放页面大小时,引起页面重绘后高度恢复正常,这时候说明你的布局是没问题。若仍旧高度塌陷,请你先检查你的布局代码。
- 若布局没有问题,则需要在updated钩子中使用el-talbe自带的doLayout方法。调用此方法后table组件会重排。
updated(){
this.$refs.mainTable.doLayout()
},
思考
为什么使用固定列的时候没有发现这个问题,我觉得是动态列,都是经过请求并且整理数据后才展示在页面上的,固定列则是写死在代码里的,动态列的渲染肯定比固定列要慢的,但是浏览器已经完成了渲染,所以出现了高度塌陷。
使用控制台尝试缩放页面触发页面重绘,发现页面重绘后高度恢复正常。所以在updated中调用el-talbe的重排,能保证每次表格发生变动时,页面都重排保证页面的初次加载准确。