Чтобы достичь желаемого, вы можете использовать функцию async
:
async myMethod() {
this.foo = "sup";
await this.$nextTick();
console.log(this.$refs.subelement.count);
}
Асинхронная функция возвращает обещание и позволяет использовать await
для ожидания разрешения любых указанных обещаний, прежде чем продолжить. Я создал простой пример этого на CodeSandbox здесь: https://codesandbox.io/embed/vue-template-6qny6.
Если вы хотите выполнить код в ответ на повторную визуализацию или изменение элемента, было бы лучше создать событие из этого дочернего компонента и прослушать это событие из родительского элемента. Или, если вам нужно это вычисляемое свойство как в дочернем, так и в родительском элементах, вы можете перенести логику для него в родительский компонент и передать его в качестве реквизита.