先看看多任务栏长什么样
为什么要使用动画或者过渡组件
- 在使用过程中两个任务切换的时候会发现使用体验差,切换看起来很僵硬
- 如果使用动态异步组件,在新打开任务的时候需要去服务端加载对应的组件,这时候会有一段空白期,过渡组件的过渡时间刚好可以弥补这个空白期从而解决这个问题
那如何使用呢? 如下
// 部分模板代码
<router-view v-slot="{ Component }">
// 增加此过渡组件, name作为过渡样式的前缀
<transition name="slide-fade">
<keep-alive>
<component :is="Component" />
</keep-alive>
</transition>
</router-view>
// 动画样式
.slide-fade-enter-active {
transition: all .6s ease-out;
}
.slide-fade-leave-active {
transition: all .3s cubic-bezier, 0.5, 0.8, 1.0);
}
.slide-fade-enter-from,.slide-fade-leave-to {
transform: translateX(20px);
opacity: 0;
}
这样的写法想要的过渡动画确实出现了, 但是会发现有一个很大的缺陷,前一个任务页面还没有执行完离开动画时后一个任务页面的进入动画也开始执行了,导致的结果是两个任务页面的组件叠加了, 那么该如何解决这个问题呢?使用mode属性 如下
<router-view v-slot="{ Component }">
<transition name="slide-fade" mode="out-in">
<keep-alive :include="cacheViews">
<component :is="Component" />
</keep-alive>
</transition>
</router-view>
mode="out-in"意思是先执行完第一个任务页面的离开动画, 然后再执行切换页面的入口动画
1.文章《transition》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《transition》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好