跳至内容

过渡作为根元素
重大变更

概述

<transition> 作为组件的根元素将不再在组件从外部切换时触发过渡。

2.x 行为

在 Vue 2 中,可以通过将 <transition> 作为组件的根元素来从组件外部触发过渡

html
<!-- modal component -->
<template>
  <transition>
    <div class="modal"><slot/></div>
  </transition>
</template>
html
<!-- usage -->
<modal v-if="showModal">hello</modal>

切换 showModal 的值将触发模态组件内部的过渡。

这是意外发生的,而不是设计使然。<transition> 应该由其子元素的更改触发,而不是由切换 <transition> 本身触发。

此怪癖现已移除。

迁移策略

可以通过向组件传递一个 prop 来实现类似的效果

vue
<template>
  <transition>
    <div v-if="show" class="modal"><slot/></div>
  </transition>
</template>
<script>
export default {
  props: ['show']
}
</script>
html
<!-- usage -->
<modal :show="showModal">hello</modal>

另请参阅