UniApp是一个基于Vue.js开发的跨平台应用框架,它可以帮助开发者使用Vue.js开发一次,即可在多个平台上进行部署,如iOS、Android、H5等。UniApp的生命周期是指从应用启动到应用关闭期间的一系列事件,开发者可以在这些事件中编写自己的代码,以实现应用的功能和逻辑。
UniApp的生命周期主要分为以下几个阶段:
- onLaunch:应用启动时触发,可以在这个阶段进行应用的初始化操作,如读取本地数据、注册事件监听器等。
- onShow:应用显示时触发,可以在这个阶段进行一些界面相关的操作,如数据请求、界面更新等。
- onHide:应用隐藏时触发,可以在这个阶段进行一些资源释放的操作,如停止播放音乐、关闭摄像头等。
- onError:应用发生错误时触发,可以在这个阶段进行错误处理和日志记录。
- onLine:网络状态改变时触发,可以在这个阶段进行一些网络相关的操作,如更新界面、重新请求数据等。
- onPageNotFound:页面不存在时触发,可以在这个阶段进行一些错误处理的逻辑。
- onUnload:页面卸载时触发,可以在这个阶段进行一些资源释放的操作,如清除定时器、解除事件监听器等。
除了以上这些生命周期事件外,UniApp还支持自定义生命周期函数,开发者可以根据自己的需求在组件中定义生命周期函数,以实现更复杂的逻辑和功能。
uniapp-⽣命周期在特定的⽣命周期节点,提供了⼀些⽅法[钩⼦函数],实现特定的操作
uniapp中有三种⽣命周期
1、应⽤周期 App.vue中:
onLaunch 应⽤⾸次加载时
onShow 应⽤显⽰时
onHide 应⽤隐藏时
2、页⾯周期 pages中的页⾯:
页⾯本⾝也是⼀个组件,所以它也具有组件周期
onLoad
onShow
onHide
onPullDownRefresh [下拉刷新事件]
onReachBottom [触底加载事件]
onPageScroll [页⾯滚动事件]
传递页⾯参数:
传递:
<template>
<view>
<!-- 1、标签跳转 -->
<navigator url="../details/details?name=亮亮&age=38">跳转到微信页</navigator>
<!-- 2、编程,事件触发函数 -->
<button type="primary" size="default" @click="gowx">跳转微信页</button>
</view>
</template>
<script>
methods: {
gowx(){
uni.navigateTo({
url: '../details/details?name=heart&nickname=false⽼师',
});
}
}
}
</script>
接收、显⽰:
<template>
<view>
<view>{{ options.name }}</view>
<view>{{ options.age }}</view>
<view>{{ options.nickname }}</view>
</view>
</template>
<script>
export default {
data() {
return {
options: null
};
},
methods: {},
onLoad(options) {
console.log('页⾯加载');
console.log(options);
this.options = options;
},
};
</script>
3、组件周期:
组件的⽣命周期从:创建 => 挂载 => 更新 => 销毁
问:发请求到底在created还是mounted中? 相差没有⼗⼏毫秒的感觉 实际都可以,官⽅推荐放在mounted中.
mounted 发送请求 获取接⼝数据
updated 监听数据的改变
destoryed 回收资源 websocket回收关闭