为了账号安全,请及时绑定邮箱和手机立即绑定

在vue中使用refs获取对象的高度,宽度为0

在vue中使用refs获取对象的高度,宽度为0

幕布斯7119047 2019-03-21 21:19:12
在vue模板中,控制子元素(echarts图表组件)和父元素(div)的大小相等。在父元素的mounted钩子中根据refs获取父元素(div)的高度和宽度传递给子元素,可是每次在mounted打印出的高度都是0代码如下:<template><div class="pie" ref="monthPie">   <v-colorPie :domHeight="domHeight"/></div></template><script>export default {    data(){        return{            domHeight:0        }    },     mounted(){         alert(this.$refs.monthPie.offsetHeight)     }}</script><style>.pie{    margin-top:1%    height:93%    width:100%}</style>
查看完整描述

3 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

这种问题的思路是,你可以在子组件mounted钩子中使用


//子组件

this.$nextTick(() => { //使用nextTick为了保证dom元素都已经渲染完毕 

    this.$emit('eventGetHeight',this.$el.offsetHeight);

});

父组件中监听eventGetHeight事件,并取得这个数据


查看完整回答
1 反对 回复 2019-04-11
?
噜噜哒

TA贡献1784条经验 获得超7个赞

你要看这个时候子组件是否加载完成


查看完整回答
反对 回复 2019-04-11
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

请问这个问题解决了么 同遇到


查看完整回答
反对 回复 2019-04-11
  • 3 回答
  • 0 关注
  • 7480 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信