获取表格行数和高度为0的原因及解决方法-vue填坑

vue真的坑太多!虽然入门简单易上手,但是,大项目真的不建议使用此框架,分分钟刷新世界观,很多生命周期问题、加载问题、传值问题、监听问题……
能填一个是一个,能救一人是一人,特意写篇标题明显的,希望能一下就被检索到。

表格存在且有内容,行数可被打印出来,但是获取到的行数和高度却为0。
代码:

methods: {
   aaa () {
        console.log('——————————————————测试——————————————————');
        console.log('表格html:', this.$refs.abc);
        console.log('表格.rows:', this.$refs.abc.rows);
        console.log('表格.rows.length:', this.$refs.abc.rows.length);
        console.log('表格.offsetHeight:', this.$refs.abc.offsetHeight);
        console.log('——————————————————测试——————————————————');
   }
}

执行结果:
在这里插入图片描述

为何如此?

因为是渲染之前打印的这个数组,看到的却是渲染后的数据,通俗的讲,就是这个dom结构还没加载完,js就执行了。

如何解决?

等dom结构加载完成后再去获取这个数组。
vue等待渲染完执行的函数: vm.$nextTick(function({console.log(…)}))

修改后代码:

methods: {
   aaa () {
        this.$nextTick(() => {
             console.log('——————————————————测试——————————————————');
             console.log('表格html:', this.$refs.abc);
             console.log('表格.rows:', this.$refs.abc.rows);
             console.log('表格.rows.length:', this.$refs.abc.rows.length);
             console.log('表格.offsetHeight:', this.$refs.abc.offsetHeight);
             console.log('——————————————————测试——————————————————');
        })
   }
}

修改后执行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值