vue踩坑之this.$nextTick()

比如你想让一个dom元素显示,然后下一步去获取这个元素的offsetWidth,最后你获取到的会是0。

因为你改变数据,把show变成true,元素并不会立即显示,理所当然也不会获取到动态宽度。

正确的做法是先把元素show出来,在$nextTick去执行获取宽度的操作,不知道这样说会不会好理解一点。

openSubmenu() {
      this.show = true
      //获取不到宽度
      this.$nextTick(() => 
       //这里才可以
        let w = this.$refs.submenu.offsetWidth;
      })
    }

猜你喜欢

转载自blog.csdn.net/kjnsfijglqj/article/details/84108282
今日推荐