@MeMoJlor

Как получать динамически высоту блока в vue?

Здравствуйте, подскажите как правильно получать динамически высоту блока? На ум приходит setInterval, но думаю что плохая идея. Еще, есть ли смысл использовать computed вместо methods?

<template>
  <section ref='height'>
    <div class="slider-text">
      <h1>TEXT</h1>
      <span>lorem ipsum</span>
    </div>
  </section>
</template>

<script>
export default {

  name: 'MainSlider',
  data () {
    return {
    }
  },
  methods: {
    watchHeight() {
      console.log(this.$refs.height.clientHeight)
    }
  },
  mounted(){
    this.watchHeight() 
  }
}
</script>
  • Вопрос задан
  • 2621 просмотр
Решения вопроса 2
ArsenyMatytsyn
@ArsenyMatytsyn
Руководитель frontend направления, предприниматель
Вешай слушатель на условия изменения блока, например ресайз окна и не забывай удалять его при размонтировании компонента. Если события происходят часто и неконтролируемо, то запускать можно с использованием дебоунсера.
Ответ написан
Комментировать
artloveyou
@artloveyou
methods: {
    resizeHandler(e) {
      console.log(this.$refs.height.clientHeight)
    }
  },

  created() {
      window.addEventListener("resize", this.resizeHandler)
  },
  destroyed() {
      window.removeEventListener("resize", this.resizeHandler)
  },
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы