Vue2生命周期及过度动画

59 阅读1分钟

生命周期

组件的生命周期:一共8个,4组,自动再不同的时刻自动触发,没写则不行

面试中:问vue的生命周期、组件的生命周期、组件的钩子函数、组件的生命周期钩子函数,都是在问同一个问题

	new Vue({
		data:{},
		beforeCreate(){
			//没用
		},
	              *created(){
			发起ajax
		},
		beforeMount(){
		},
	        *mounted(){
			发起ajax、找到dom后触发js操作(swiper自己的js应该再此处执行)
		},
		beforeUpdate(){

		},
	              *updated(){

		},
		beforeDestroy(){////没用
			console.log("清楚定时器,事件解绑(window)")
		},
		Destroyed(){////没用
			console.log("清楚定时器,事件解绑")
		}
	})

过度动画

过渡:添加动画

例css设置:

                 .paoge-enter-active{ 
                 animation: aaa 1s;            
                 }                             
                                               
                 .paoge-leave-active{          
                 animation: aaa 1s reverse;    
                 }                             
                                               
                 @keyframes aaa{               
                     0%{                           
                     opacity: 0;                   
                     transform: translateX(100px); 
                     }                             
                     100%{                         
                     opacity: 1;                   
                     transform: translateX(0px);   
                     }                             
                 }

语法:

        <transition enter-active-class="开始动画的class" leave-active-class="离开动画的class">
		<div v-show="isShow">11111111111111111111111</div>	
	</transition>
        <transition name="class的前缀">
		<div v-show="isShow">11111111111111111111111</div>	
	</transition>

开始就有动画

如果希望一打开页面就有一次动画,可以在transition标签上添加一个appear

如果多个元素过渡

别用v-show,使用v-if v-else

              <transition name="paoge" mode="out-in">
		<div v-if="isShow" key="1">11111111111111111111111</div>
		<div v-else key="2">22222222222222222222222</div>	
              </transition>

多个组件实现过渡,同上

                        <transition name="paoge" mode="out-in">
				<component :is="变量"><component>
			</transition>

列表ul li

		<transition-group name="paoge" tag="ul">
			<li v-for="(v,i) in arr" :key="v">
				{{v}} - <button @click="del(i)">x</button>
			</li>
		</transition>