В разработке веб-приложений часто возникает ситуация, когда часть
HTML-кода отображается до того, как JavaScript успевает инициализировать
реактивные данные. В таких случаях пользователи видят “сырой” HTML с
неинициализированными переменными. Для решения этой проблемы в
Petite-Vue используется директива v-cloak.
v-cloakv-cloak предназначена для временного скрытия элементов
DOM до завершения привязки данных Petite-Vue. Элемент с этой директивой
остается скрытым до момента, когда Petite-Vue полностью инициализирует
реактивные свойства и обработчики.
Основные задачи v-cloak:
{{ ... }}) до загрузки данных.Директива v-cloak добавляется к HTML-элементу следующим
образом:
<div v-cloak>
{{ message }}
</div>
Чтобы элемент был скрыт до инициализации, требуется добавить CSS:
[v-cloak] {
display: none;
}
После того как Petite-Vue завершает инициализацию, директива автоматически убирается, и содержимое становится видимым.
v-cloak из DOM, что делает
элемент видимым.createApp
или объектные привязки.v-cloak к любому количеству элементов на странице без
конфликтов.<ul v-cloak>
<li v-for="item in items">{{ item }}</li>
</ul>
<script type="module">
import { createApp } from 'https://unpkg.com/petite-vue?module';
createApp({
items: ['Яблоко', 'Банан', 'Вишня']
}).mount();
</script>
До инициализации список будет скрыт благодаря CSS
[v-cloak] { display: none; }. После монтирования Petite-Vue
список автоматически отобразится с реальными значениями.
v-cloak часто используется совместно с директивами
v-if, v-for и v-show:
<div v-cloak v-if="loaded">
Данные загружены: {{ data }}
</div>
Порядок применения не критичен: v-cloak скрывает элемент
до инициализации, а v-if или v-show управляют
отображением после.
[v-cloak] { display: none; } только для
элементов, которые действительно могут показать пустой шаблон до
загрузки данных.Для плавного появления контента после инициализации можно
комбинировать v-cloak с CSS-переходами:
[v-cloak] {
opacity: 0;
transition: opacity 0.5s ease;
}
[v-cloak]:not([v-cloak]) {
opacity: 1;
}
Эта техника обеспечивает эффект плавного появления элементов после того, как Petite-Vue обработает реактивные данные.
При использовании серверного рендеринга v-cloak
предотвращает показ шаблонных выражений до гидратации. После гидратации
Petite-Vue автоматически удаляет атрибут, обеспечивая корректное
отображение контента без вспышек «сырых» данных.
Использование v-cloak повышает качество
пользовательского интерфейса, устраняет визуальные артефакты и позволяет
создавать более профессионально выглядящие приложения на Petite-Vue.
Директива проста в применении, совместима со всеми основными механизмами
библиотеки и не требует дополнительной настройки на уровне
JavaScript.