Я бы посоветовал поместить функцию инициализации диаграммы в тот же метод или создать метод наблюдателя, например, тот, который отвечает за отображение / скрытие элемента.
Как:
<div v-if="visible">
<div ref="chartContainer"></div>
</div>
.....
methodThatChangesVisibility () {
this.visible = true
this.initChartMethod()
}
Когда вы говорите, что вы можете настроить наблюдателя, это почти то же самое, но независимо от видимого устанавливается значение true.
watch: {
visible: function (visible) {
if (visible) this.initChartMethod()
}
}