.collapse-transition-enter-active,.collapse-transition-leave-active{transition:height.3sease-in-out,padding.3sease-in-out,max-height.3sease-in-out;}上图的折叠面板功能你实现过吗?如果是这样,您的实施情况如何?有什么问题?如果没有,那就看看我的实现方法。1.最大的问题。这种折叠效果实际上控制了元素的高度。CSS和js用height和max-height控制元素的高度。由于是通过高度实现的,所以很简单。我直接通过styles解决,如下:{溢出:隐藏;transition:height.3sease-in-out,padding.3sease-in-out,max-height.3sease-in-out;}.collapse-transition-enter-to,.collapse-transition-leave-from{height:auto;}满怀信心的写完上面的代码,运行一下,你会发现没有过渡效果,元素隐藏的时候还是卡住了,为什么会有这样的感觉呢?原因是:transition对height:auto无效,必须设置height为auto以外的有效值才能生效。那么问题来了,应该什么时候获取和设置元素的高度呢?我什么时候应该恢复元素的高度?答案是:1、进入时,获取并设置转场效果进入后元素的高度,转场效果完成后立即恢复。2.离开时,获取并设置转场效果离开前元素的高度,转场效果完成后立即恢复涉及到4个时序,光靠css是无法完成的,需要依赖组件2的hook,完整代码.collapse-transition-enter-active,.collapse-transition-leave-active{transition:height.3sease-in-out,padding.3sease-in-out,max-height.3sease-in-out;}看完代码,你可能会疑惑为什么设置的是元素的max-height,而不是元素的高度?这样做的原因是:无论元素是否通过样式本身设置高度,都不会影响元素高度的计算3.使用组件Expand/Collapse