正解はnextTick()です。VueのDOM更新は非同期で行われるため、データを変更した直後にDOM要素の幅や高さを取得しようとしても古い値のままの場合があります。await nextTick()を使うことで更新後を待機できます。