由于需求,要做一个部分的控件点击切换,但是由于使用了
v-if控制所以css无法进行操控,所以只能研究vue的过渡动画,但是过渡动画又会出现同时进行的问题,所以
vue的transition标签不支持多个子元素
- 将要离开的部分和要进来的部分分开两个盒子放置,同时写进
transition标签,然后不通过v-if的取反进行判断(例:v-if == flag v-if == !flag),直接使用v-else - 给
transition标签添加mode属性:
- in-out:新元素先进行过渡,完成之后当前元素过渡离开。
- out-in:当前元素先进行过渡,完成之后新元素过渡进入。
- 给两个盒子添加
key属性,自己命名,以便vue区分,引用了vue的原话:
当有相同标签名的元素切换时,需要通过 key 特性设置唯一的值来标记以让 Vue 区分它们,否则 Vue 为了效率只会替换相同标签内部的内容。即使在技术上没有必要,给在 <transition> 组件中的多个元素设置 key 是一个更好的实践。
以上是避免以后踩坑忘了之前的痛