może to trywialne pytanie.
tak więc, kiedy uruchamiam moją aplikację vuejs w przeglądarce z włączoną funkcją ograniczania prędkości pobierania (ustawia niskie połączenie). Mam niedokończone dane wyjściowe składni vue w przeglądarce.
Wiem, że możemy to oszukać, wyświetlając obraz ładowania przed załadowaniem całej strony, ale czy istnieje najlepsze rozwiązanie, aby to naprawić?
javascript
vue.js
antoniputra
źródło
źródło
[v-cloak] { display: none; } <div v-cloak> {{ message }} </div>
to znaczy, powinienem dodaćv-cloak
atrybut w każdym elemencie, który chciałbym ukryć?App
div powinno być w porządkuv-cloak
powinno to być domyślne i jeśli ktoś naprawdę chciałby to pokazać{{ }}
, powinien użyć czegoś takiegov-uncloak
.display:none
w istniejącym kodzie HTML jest złą flagą dla SEO. Myślę, że lepiej byłoby użyć jakiejś nakładki do załadowania strony.Załączam następujący kod. Możesz zobaczyć różnicę zi bez
v-cloak
.http://codepen.io/gurghet/pen/PNLQwy
źródło
v-cloak
atrybutu.Jak sugerują inni, użycie v-cloak jest właściwym rozwiązaniem. Jednak, jak wspomniał @ DelightedD0D, jest niezgrabny. Prostym rozwiązaniem jest dodanie trochę CSS selektor pseudo
::before
zv-cloak
dyrektywą.W twoim pliku sass / less coś w stylu
Oczywiście musisz podać prawidłową i dostępną ścieżkę do obrazu programu ładującego. Wyrenderuje coś podobnego.
Mam nadzieję, że to pomoże.
źródło
Za pomocą
v-cloak
dyrektywy możesz ukryć nieskompilowane powiązania wąsów do czasu zakończenia kompilacji instancji vue. Musisz użyć bloku CSS, aby ukryć go do czasu skompilowania.HTML:
CSS:
Nie
<div>
będzie to widoczne, dopóki kompilacja nie zostanie zakończona.Możesz zobaczyć ten link Ukryj elementy podczas wczytywania za pomocą,
v-cloak
aby lepiej zrozumieć.źródło
Nie umieszczaj w pliku HTML żadnej składni vuejs:
W swoim głównym JavaScript możesz:
Zobacz szablon vuetify webpack w celach informacyjnych.
Innym rozwiązaniem jest użycie:
Z:
źródło
Możesz przenieść dowolny rendering do prostego komponentu opakowania . Inicjalizacja VueJS, np. Nowy Vue (....), nie powinna zawierać żadnego HTML-a poza tym pojedynczym komponentem opakowującym.
W zależności od konfiguracji możesz nawet mieć miejsce, w
<app>Loading...</app>
którym aplikacja jest komponentem opakowania z dowolnym ładującym się kodem HTML lub tekstem, który jest następnie zastępowany podczas ładowania.źródło
źródło
Służy
<v-cloak>
do ukrywania kodu Vue przed powiązaniem danych z odpowiednimi miejscami. W rzeczywistości znajduje się w miejscu w dokumentacji Vue, którego każdy może przegapić, chyba że go poszukasz lub dokładnie przeczytasz.źródło
Tak, możesz użyć
v-cloak
, ja lubię używać spinkit , to świetna biblioteka z samym CSS, sprawdź prosty przykład:Link: - http://tobiasahlin.com/spinkit/
źródło
Wolę używać
v-if
z obliczoną właściwością, która sprawdza, czy moje dane są gotowe, na przykład:W ten sposób łatwiej jest pokazać program ładujący tylko wtedy, gdy dane nie są gotowe (używane
v-else
).W tym konkretnym przypadku również
v-if="variableName"
by się sprawdził, ale mogą istnieć bardziej skomplikowane scenariusze.źródło
Dla tych, którzy używają v-cloak w widoku z wieloma plikami Laravel Blade, a to nie działa, spróbuj użyć v-cloak na nadrzędnym pliku blade zamiast w jakimkolwiek podrzędnym pliku blade.
źródło