Skip to content
The translation is synced to the docs on of which the commit hash is d283ef0.

ルートのトランジション
破壊的変更

概要

コンポーネントのルートとして <transition> を使用する場合、外部からコンポーネントを切り替えたときにトランジションが発生しなくなりました。

2.x の動作

Vue 2 では、コンポーネントのルートとして <transition> を使用することで、コンポーネントの外からトランジションをトリガーできました:

html
<!-- モーダルコンポーネント -->
<template>
  <transition>
    <div class="modal"><slot/></div>
  </transition>
</template>
html
<!-- 使用箇所 -->
<modal v-if="showModal">hello</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">hello</modal>

参照