Vue路由切换无法显示enter原因的反思
记录了研究3个小时的憨憨成果
最简单的VUE路由切换添加动画根本无需使用v-if v-show!!!!!且VUE目前版本的enter与原来大致相同
直接使用即可。如果不会的小伙伴请查看官方文档
在检查了3小时后,发现多写了一行CSS
在v-leave-active下多写了opacity: 0; 把进入属性隐藏了,则不会显示enter,只会显示leave
至于为什么呢!!我没有办法给出一个官方解释,但是相信大家看了官方文档(https://cn.vuejs.org/v2/guide/transitions.html) 后每个人都会有自己的理解!
下面附上源代码
<template>
<div class="app-container">
<mt-header fixed title="Vue项目">
<span slot="left">
<mt-button icon="back">返回</mt-button>
</span>
</mt-header>
<transition>
<router-view></router-view>
</transition>
<!-- ---------------------------- -->
<nav class="mui-bar mui-bar-tab">
<router-link class="mui-tab-item" to="/home">
<span class="mui-icon mui-icon-home"></span>
<span class="mui-tab-label">首页</span>
</router-link>
<router-link class="mui-tab-item" to="/member">
<span class="mui-icon mui-icon-contact"></span>
<span class="mui-tab-label">会员</span>
</router-link>
<router-link class="mui-tab-item" to="/shopcar">
<span class="mui-icon mui-icon-extra mui-icon-extra-cart"><span class="mui-badge">0</span></span>
<span class="mui-tab-label">购物车</span>
</router-link>
<router-link class="mui-tab-item" to="/search">
<span class="mui-icon mui-icon-search"></span>
<span class="mui-tab-label">搜索</span>
</router-link>
</nav>
</div>
</template>
<script>
export default {
data(){
return {}
},
}
</script>
<style lang="scss" scoped>
.app-container {
padding-top: 40px;
padding-bottom: 50px;
overflow: hidden;
}
.v-enter {
opacity: 0;
transform: translateX(100%);
}
.v-leave-to {
opacity: 0;
transform: translateX(-100%);
position: absolute;
}
.v-leave-active,.v-enter-active{
transition: all 0.4s ease;
}
.mint-header {
z-index: 99;
}
</style>
最重要的!!反思。
1.希望大家以后在初学的时候尽量找有源码的项目进行编写
2.出问题了先在拥有源码的项目上对比!!并且多查一查官方文档,对各种属性的理解会更好
3.一定要解决了问题后再进行下一个项目的编写!!
4.如果无源码且在代码量不大的情况下,可以重新写一遍,能更快的找出错误