生命周期 uni-app随笔【uni-app】【vue】【浅谈自学】

2023-06-07 16:25:38 浏览数 (1)

1、uni-app 生命周期

1.1、应用生命周期

这部分内容在app.vue中,

常用:onLaunch |onShow|onHide

代码语言:javascript复制
<script>
	export default {
		//应用 初始化完成触发一次,全局只触发一次
		onLaunch: function() {
			console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')
			console.log('App Launch')
		},
		//应用启动时 || 后台进入前台 会触发
		onShow: function() {
			console.log('App Show')
		},
		//应用从前台进入后台 会触发
		onHide: function() {
			console.log('App Hide')
		}
	}
</script>

1.2、页面生命周期

以 index 页面为例,

这部分内容在index.vue中,

常用:onLoad|onReady|onShow|onHide|onUnload

代码语言:javascript复制
<script>
	
	export default {
		//初始化数据方法
		data() {
			return {
			

			}
		},
		//监听页面加载
		onLoad() {
			uni.getSystemInfo({
				success(res) {
					console.log('成功的返回',res);
				},
				fail(err) {
					console.log('失败的返回',err);
				},
				complete(res) {
					console.log('不管成功失败都返回',res);
				}
			})
		},
		//监听页面初次渲染完成,如果渲染速度快,会在页面进入动画完成前触发。
		onReady() {
			console.log('page ready')
		},
		//监听页面显示
		onShow() {
			console.log('page onshow')
		},
		//监听页面隐藏
		onHide() {
			console.log('page onhide')
		},
		//监听页面卸载
		onUnload() {
			
		},
		methods: {
			open() {
				uni.navigateTo({
					url:'./test-page-a/test-page-a',
					options: {  
					    animation: 'slide-in-right',  
					    time: 1000  
					  }  
				})
			}
		}
	}
</script>

1.3、组件生命周期

以自定义组件<btn></btn>为例,

常用:beforeCreate|created|mounted|destroyed

代码语言:javascript复制
<script>
	export default {
		name:"btn",
		//样式变量
		props:{
            
		},
		//自定义方法
		methods:{
			
		},
		data() {
			return {
				
			};
		},
		//在实例初始化之后,数据观测(da'ta observer )和event/watcher 事件配置之前被调用
		beforeCreate() {
			console.log('conponent before create')
		},
		//实例创建完成后立即调用,挂载阶段还没开始
		created() {
			console.log('conponent created')
		},
		//挂载到实例上去之后调用
		mounted() {
			console.log('component mounted')
		},
		//Vue 实例销毁后调用
		destroyed() {
			console.log('component destroyed')
		}
		
	}
</script>

其中,组件被隐藏,就会调用销毁。

如何实现组件隐藏?

代码语言:javascript复制
<template>
	<view class="">
		<btn v-if="showComponent">
			隐藏测试
		</btn>
		<button  @click="open">点击隐藏</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				showComponent :true,
			}
		},
		methods: {
			open(){
				this.showComponent = !this.showComponent;
			}
		}
	}
</script>

我学习的视频中隐藏组件会调用destroyed(),我在实际使用隐藏时,并未销毁,有待考察是我的代码问题还是其他因素。

2、浅谈自学

  • 先在纸上打草预习,跟完视频
  • 再依据草稿补充笔记,重点难点结合两倍速补充

对我来说,对于一个完全陌生的内容,先打草预习,再两倍速学习补充,比只听一遍,一边听一边暂停一边记,记得牢,还学得快。一边听一边暂停一边记就是在担心听不懂,各种细节都在扣,一时半会不能理解的很耽误时间,完全有可能在后面会讲到,时间直接白给,相比之下先用纸打草预习心理暗示:还可以再看,不必细究,看完整个视频后,哪些是废话讲了纯在吹牛水时间的,哪些是基础过头的,哪些是重点反复提到的,哪些是不理解的点,复看的时候就有重点地补充电子笔记了,在有限的精力中,内容的轻重,都一目了然。

新内容我是不太想碰的,啥都不会,还学的贼慢,非常抵触。沿用生理学的说法,这就是痛苦,我选择先纸面预习,而不是边听边暂停边记录,是在减轻痛苦。另外还可以试试古典乐,学习是有奇效,每当我疲惫不堪难以入睡的时候,也可以试试古典乐,真的不错,那个时候听流行乐是一种煎熬和折磨,对我而言【叠甲】。

0 人点赞