Poszukuję sposobu odczytu wysokości (clientHeight) komponentu po wyrenderowaniu jego gniazd (w DOM), a następnie ustawieniu wyniku do reaktywnych danych do dalszych obliczeń.W pliku vue.js 2 zmierzyć wysokość komponentu po wyrenderowaniu gniazd
Zgodnie z dokumentacją haka updated
:
DOM na komponentu zostaną zaktualizowane gdy hak jest nazywany, więc można wykonywać operacje DOM-zależnych tutaj
... Do tego czasu jest ok, ale w dokumentacji jest również napisane:
Jednak w większości przypadków należy unikać zmiany stanu wewnątrz haka
... Wygląda na to, że nie jest zabronione ustawianie reaktywnych danych w haku updated
.
Wynik jest bardzo niestabilny, czasami otrzymuję clientHeight
po wyrenderowaniu gniazd, a czasami przed ich renderowaniem.
Wygląda na to, że "zaktualizowany" hak jest wywoływany we właściwym momencie, ale zmiana danych reaktywnych w tym haku nie działa systematycznie.
Test: https://jsfiddle.net/4wv9f052/5/
Ale dlaczego to nie działa z zaktualizowane? – Saurabh
@Saurabh Ponieważ Vue manipuluje DOM asynchronicznie – CodinCat
Dziękuję za odpowiedź, więcej szczegółów tutaj: https://vuejs.org/v2/guide/reactivity.html#Async-Update-Queue –