Transition як кореневий елемент несумісно
Огляд
Використання <transition>
як кореневого компонента більше не запускатиме переходи, коли компонент перемикається ззовні.
Поведінка 2.x
У Vue 2 було можливо ініціювати перехід ззовні компонента, використовуючи <transition>
як кореневий компонент:
html
<!-- модальний компонент -->
<template>
<transition>
<div class="modal"><slot/></div>
</transition>
</template>
html
<!-- використання -->
<modal v-if="showModal">привіт</modal>
Перемикання значення showModal
призводить до переходу всередині модального компонента.
Це спрацьовує випадково, а не задумом. <transition>
має ініціюватись змінами до його дочірніх елементів, а не перемиканням самого <transition>
.
Зараз цю примху видалено.
Стратегія міграції
Подібного ефекту можна досягти, якщо натомість передати реквізит компоненту:
vue
<template>
<transition>
<div v-if="show" class="modal"><slot/></div>
</transition>
</template>
<script>
export default {
props: ['show']
}
</script>
html
<!-- використання -->
<modal :show="showModal">привіт</modal>