Как скрыть шаблон Vue. js пока он не отрендерится. Директива [v-cloak]
Бывают ситуации, когда вы загружаете страницу с каким-то компонентом Vue, и при этом страница при загрузке «прыгает»: сначала показывает синтаксис шаблона Vue, а потом рендерит сам шаблон. Вот пример:
Починить это легко — добавляем к родительскому элементу директиву v-cloak
, прописываем стили и всё. Со стилями можно поэкспериментировать.
<template>
<div v-cloak>
...
</div>
</template>
<style>
[v-cloak] {
display: none;
}
</style>
Подробнее об этой фиче читайте в документации.
Крутящаяся анимация для v-cloak
Показываем анимированный спинер, пока компонент не отрендерился:
[v-cloak] {
display: block;
padding: 50px 0;
@keyframes spinner {
to {
transform: rotate(360deg);
}
}
&:before {
content: '';
box-sizing: border-box;
position: absolute;
top: 50%;
left: 50%;
width: 20px;
height: 20px;
margin-top: -10px;
margin-left: -10px;
border-radius: 50%;
border: 2px solid #ccc;
border-top-color: #333;
animation: spinner .6s linear infinite;
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
}
& > div {
display: none;
}
}
Поделиться
Поделиться
Отправить
Твитнуть
Вотсапнуть
Чётко и кратко. Топ
Спасибо!
У меня есть 500 массивов. Через PHP цикл foreach показываю нужные данные. И есть всего лишь 2 элементы в VUE js коде summ:11 111 111 и btnSave: true. Без Vue Страница грузится моментально. А с VUE очень заметно синтаксис шаблона Vue {{ summ:11 111 111 }}. Почему если даже 1 элемент Vue так долго рендерит шаблон.
Стоит замерить скорость каким-нибудь лайтхаусом, чтобы понять что именно долго грузится. Вероятно, у вас просто сам Vue инициализируется долго и подгружается откуда-то по CDN.