Как узнать высотку потомка?

Для того чтобы узнать высоту потомка в Vue.js, можно воспользоваться различными подходами в зависимости от ситуации.

Если вы хотите узнать высоту элемента после того, как он был отрисован и добавлен в DOM, вы можете использовать референс на элемент, который вы хотите измерить. Вот пример:

<template>
  <div>
    <div ref="childElement">Элемент</div>
    <button @click="getChildElementHeight">Получить высоту элемента</button>
  </div>
</template>

<script>
export default {
  methods: {
    getChildElementHeight() {
      const childElement = this.$refs.childElement;
      const height = childElement.clientHeight;
      console.log('Высота элемента:', height);
    }
  }
}
</script>

В этом примере мы добавляем референс childElement к элементу, который мы хотим измерить. Затем мы создаем метод getChildElementHeight, который получает доступ к этому элементу через $refs и использует свойство clientHeight для определения его высоты. Затем мы выводим эту высоту в консоль.

Вы также можете узнать высоту элемента при изменении его размера или при других событиях. В этом случае вам нужно будет применить наблюдение за значением высоты элемента. Вот пример:

<template>
  <div>
    <div ref="childElement" @resize="onChildElementResize">Элемент</div>
  </div>
</template>

<script>
export default {
  mounted() {
    this.$nextTick(() => {
      const childElement = this.$refs.childElement;
      this.observeElementResize(childElement);
    });
  },
  methods: {
    observeElementResize(element) {
      const resizeObserver = new ResizeObserver(entries => {
        for (let entry of entries) {
          const { width, height } = entry.contentRect;
          console.log('Изменение размера элемента:', width, height);
        }
      });

      resizeObserver.observe(element);
    },
    onChildElementResize() {
      const childElement = this.$refs.childElement;
      const height = childElement.clientHeight;
      console.log('Высота элемента:', height);
    }
  }
}
</script>

В этом примере мы используем ResizeObserver, чтобы отслеживать изменение размера элемента. В методе mounted мы получаем доступ к элементу через $refs, затем вызываем метод observeElementResize, который создает новый ResizeObserver и привязывает его к элементу. Затем мы слушаем событие resize на элементе и вызываем метод onChildElementResize, чтобы получить и обработать новую высоту элемента.

Перечисленные подходы являются наиболее распространенными и универсальными способами для определения высоты элемента в Vue.js. Однако, в зависимости от конкретных требований и ситуации, могут потребоваться и другие подходы, такие как использование CSS свойства offsetHeight, использование вычисляемых свойств (computed properties) или связывание событий на элементе. Все зависит от вашей конкретной задачи и предпочтений.