Компонент
Объяснение проблемы:
При использовании
Метод 1: упаковка неэлементного корневого узла
Один из способов решить эту проблему — обернуть неэлементный корневой узел элементом-контейнером. Например, если у вас есть текстовый узел, который вы хотите анимировать, вы можете обернуть его внутри элемента . Вот пример фрагмента кода:
<template>
<transition name="fade">
<span>{{ text }}</span>
</transition>
</template>
Метод 2: использование фрагментов Vue
Vue 3 представляет концепцию фрагментов, которая позволяет группировать несколько элементов без добавления дополнительного элемента-оболочки в DOM. Вы можете использовать фрагменты Vue, чтобы обернуть корневой узел, не являющийся элементом, и применить анимацию. Вот пример:
<template>
<transition name="fade">
<template v-slot:default>
{{ text }}
</template>
</transition>
</template>
Метод 3: использование CSS-анимации
Если вы не можете обернуть корневой узел, не являющийся элементом, вы можете напрямую прибегнуть к CSS-анимации. Вместо использования
<template>
<div class="fade-animation">{{ text }}</div>
</template>
<style>
.fade-animation {
animation: fade 1s ease;
}
@keyframes fade {
0% { opacity: 0; }
100% { opacity: 1; }
}
</style>
Анимация неэлементных корневых узлов с помощью компонента