uni-app生命周期
uni-app 生命周期分为应用生命周期和页面生命周期,后期用得比较多的是页面生命周期。
应用生命周期
应用生命周期只能在 App.vue 中监听,在其他页面无效。打开 App.vue,默认有 3 个生命周期函数,代码如下。
export default {
// 应用生命周期
// 项目初始化完成执行
// 只运行一次
onLaunch: function() {
console.log('项目初始化完成')
},
// 打开项目时执行
onShow: function() {
console.log('打开项目')
},
// 关闭项目时执行
onHide: function() {
console.log('关闭项目')
}
}
运行程序,打开控制台,会发现 onLaunch 只运行一次,onShow 和 onHide 只要切换前后台就可以触发,可观看视频中的演示效果。
页面生命周期
uni-app 提供了大量的页面生命周期函数,不过项目中经常用到的也不过是其中的某几个,本节先看一个比较重要的,即页面生命周期函数 onLoad()。
onLoad 用于监听页面加载,其参数是上一个页面传递的参数。这个生命周期函数比较重要,它有两个作用。
-
在 onLoad 中调用数据接口,获取服务器端数据。
-
接收上一个页面传递的参数。
因为还没有讲解接口调用,此处无法做案例演示,等讲解接口调用之后,我们再演示 onLoad 案例。
下拉刷新生命周期函数
在 uni-app 页面生命周期函数中,上拉加载功能和下拉刷新功能也是非常实用的,先看下拉刷新功能的使用。
onPullDownRefresh:监听用户下拉动作,用于下拉刷新。
案例:循环遍历数组,下拉刷新修改数组顺序,代码如下。
<template>
<view class="content">
<view class="" v-for="(item, i) in newsList" :key="i">
{{ item }}
</view>
</view>
</template>
<script>
export default {
data() {
return {
// 1.定义数组
newsList: ['新闻1', '新闻2', '新闻3']
}
},
onLoad() {
},
// 3.和onLoad平级,下拉刷新周期函数
onPullDownRefresh() {
console.log('下拉刷新')
this.newsList = ['新闻3', '新闻2', '新闻1']
// 注意:完成数据刷新后,需要停止刷新
uni.stopPullDownRefresh()
},
methods: {}
}
</script>
代码解析如下。
单击按钮触发下拉刷新的方法是 uni.startPullDownRefresh() 。
上拉加载生命周期函数
上拉加载是指当页面滚动条到达底部时,触发 onReachBottom 生命周期函数,实现数据加载,案例代码如下。
<template>
<view class="content">
<view class="main" v-for="(item, i) in newsList" :key="i">
{{ item }}
</view>
</view>
</template>
<script>
export default {
data() {
return {
// 1.定义数组,增加数据时页面产生滚动条
newsList: ['新闻1', '新闻2', '新闻3', '新闻1', '新闻2', '新闻3', '新闻1', '新闻2', '新闻3']
}
},
onLoad() {
},
// 3.下拉加载生命周期
onReachBottom() {
console.log('页面触底')
// 每次到达底部都会加载这两条假数据
this.newsList = [...this.newsList, ...['新闻4', '新闻5']]
},
methods: {}
}
</script>
代码解析如下。
上拉加载的周期函数是 onReachBottom,当滚动条到达底部时触发。