vue 保持连接中断了初始过渡,

qvtsj1bj  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(45)

版本

2.5.16(但我也检查了2.5.5版本)

复现链接

https://jsfiddle.net/bpkpz6v6/

重现步骤

  • 添加3个项目。您可以看到每个项目的动画✅
  • 以以下顺序删除项目:3 -> 2 -> 1
  • 再次添加3个项目。这次,项目1的动画没有被应用❌
  • 以相反的顺序删除项目:1 -> 2 -> 3
  • 再次添加项目。动画再次正常工作✅

预期结果是什么?

每次都能过渡工作

实际发生的情况是什么?

当在被停用后激活transition-group内的keep-alive时,有时它不会对第一个渲染的元素应用过渡。

bz4sfanl

bz4sfanl1#

我刚刚注意到,当我在移除一个项目后不重置id计数器($x_1^m_0^n_1^x$)时,它可以正常工作。

这意味着,每次从集合中移除一个元素时,我们都需要确保重置$x_1^m_0^n_1^x$的值。这样,当我们再次尝试添加一个具有相同id的新元素时,就不会再出现问题。

omqzjyyz

omqzjyyz2#

我认为这是因为 v-if 。它在组件渲染为空列表的项目之前触发。当你添加一个新项目时,它会响应,但该项目已经存在,所以没有发生动画。理想情况下,你应该在过渡完成后再停用组件。如果你保持组件的激活状态,那么在使用 v-show 而不是 keep-alive 不是更有意义吗?

相关问题