Nuxt child 转换在某些情况下不起作用

Nuxt child transitions not working in some cases

我有一个带有简单 child/grandchild 2 层嵌套的应用程序,我正在尝试在 nuxt-child(ren) 的两个层上进行转换。奇怪的是,转换在 grandchild 上运行良好,但由于某种原因在 child 上不起作用,即使它是相同的转换。我可以在检查器中检查并验证它是否正确应用了 类。最终发生的事情是,它不是平稳过渡 500 毫秒,而是暂停 500 毫秒并呈现 child 页面。

Here's the simple repo demonstrating the issue. Here's the code sandbox 已部署应用。

这是我进行转换的方式:

模板:

    <transition name="jade" mode="out-in">
      <nuxt-child></nuxt-child>
    </transition>

风格:

.jade-enter-active {
  transition: all .3s ease;
}
.jade-leave-active {
  transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.jade-enter, .jade-leave-to
{
  transform: translateX(10px);
  opacity: 0;
}

虽然我不完全确定为什么会这样,但有两种方法可以解决这个问题

  • 在各个页面中使用 transition 属性 (Nuxt Docs)

/src/index.vue

export default {
  transition: {
    name: 'jade',
    mode: 'out-in'
  }
}
  • nuxt.config.js中设置pageTransition,这将全局应用于所有过渡组件(Nuxt Docs)

/nuxt.config.js

export default {
  pageTransition: 'jade'
  // or
  pageTransition: {
    name: 'jade',
    mode: 'out-in'
  }
}

这是我的 Sandbox link 使用 transition 属性