1、uni-app 生命周期
1.1、应用生命周期
这部分内容在app.vue
中,
常用:onLaunch |onShow|onHide
<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
<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
<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、浅谈自学
- 先在纸上打草预习,跟完视频
- 再依据草稿补充笔记,重点难点结合两倍速补充
对我来说,对于一个完全陌生的内容,先打草预习,再两倍速学习补充,比只听一遍,一边听一边暂停一边记,记得牢,还学得快。
一边听一边暂停一边记
就是在担心听不懂,各种细节都在扣,一时半会不能理解的很耽误时间,完全有可能在后面会讲到,时间直接白给,相比之下先用纸打草预习
心理暗示:还可以再看,不必细究,看完整个视频后,哪些是废话讲了纯在吹牛水时间的,哪些是基础过头的,哪些是重点反复提到的,哪些是不理解的点,复看的时候就有重点地补充电子笔记了,在有限的精力中,内容的轻重,都一目了然。新内容我是不太想碰的,啥都不会,还学的贼慢,非常抵触。沿用生理学的说法,这就是痛苦,我选择先纸面预习,而不是边听边暂停边记录,是在减轻痛苦。另外还可以试试古典乐,学习是有奇效,每当我疲惫不堪难以入睡的时候,也可以试试古典乐,真的不错,那个时候听流行乐是一种煎熬和折磨,对我而言【叠甲】。