IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 应用生命周期、页面生命周期、组件生命周期 -> 正文阅读

[移动开发]应用生命周期、页面生命周期、组件生命周期

一 应用生命周期

函数名说明应用场景
onLaunch当 uni-app 应用初始化完成时触发,全局只触发一次一般用于查看用户是否授权、获取用户的设备信息等
onShow当应用启动,或从后台进入前台显示时触发,可以触发多次一般用于重新进入应用的消息提示或者数据刷新
onHide监听应用从前台进入后台一般用于退出应用时的消息提示
onError应用报错时被触发用于监测并处理错误

前台、后台定义:

当我们离开应用时,应用不会被直接销毁,而是进入了后台。当我们再次进入到应用时,应用就会从后台进入前台。

那应用什么时候会被真正销毁呢?

当应用进入后台超过一定时间,或者系统资源占用过高,应用才会被真正的销毁。再次打开就需要重新初始化启动应用。

二 页面生命周期

函数名说明支持平台
onLoad页面加载时触发,一个页面只会调用一次。可以传递参数所有
onShow页面显示时触发,每次打开页面都会调用一次所有
onReady页面初次渲染完成后触发,一个页面只会调用一次所有
onHide页面隐藏时触发,每次隐藏页面都会被触发所有
onUnload页面卸载时触发所有
onResize页面每次窗口尺寸变化时会被触发App、微信小程序
onPullDownRefresh用户下拉页面时触发,一般用于页面下拉刷新所有
onReachBottom页面上拉滚动触底时触发所有
onTabItemTap点击底部 tab 栏时触发,参数为 Object微信小程序、百度小程序、H5、App
onShareAppMessage点击右上角分享时触发微信小程序、百度小程序、字节跳动小程序、支付宝小程序
onPageScroll页面滚动时触发,只监听页面垂直滚动所有
onNavigationBarButtonTap监听原生标题栏按钮点击事件App、H5
onBackPress页面返回时触发App、H5
onNavigationBarSearchInputChanged监听原生标题栏搜索输入框输入内容变化事件App、H5
onNavigationBarSearchInputConfirmed监听原生标题栏搜索输入框搜索事件App、H5
onNavigationBarSearchInputClicked监听原生标题栏搜索输入框点击事件App、H5

说明

1 onLoad 参数说明

页面生命周期函数 onLoad,是页面最先执行的生命周期函数,如果从上个页面跳转到本页面,可以通过参数option 传递上个页面的数据。

//index.vue
//跳转语句,并在跳转链接上面加上要传递的数据
uni.reLaunch({
    url: 'test?name=我是首页的数据'
});

//me.vue
export default {
    //options参数就是上个页面传递过来的数据
    onLoad: function (options) {
        console.log(options.name);
    }
}

//打印出来的结果
我是首页的数据

2 onPullDownRefresh 函数 用于监听该页面用户下拉页面的动作。

普通页面下拉不会触发 onPullDownRefresh 函数,要先在 pages.json 里面,找到当前页面的 pages 节点,并在style 选项中将 enablePullDownRefresh 设置为 true,下拉页面才可以触发 onPullDownRefresh 函数。
调用完成 onPullDownRefresh 函数后,用 stopPullDownRefresh 函数可以停止当前页面的下拉状态。

//pages.json
{
    "path": "pages/index/index.vue",
    "style": {
        "enablePullDownRefresh": true
    }
}

//页面,隐藏下拉状态
export default{
    onPullDownRefresh(){
        console.log('用户下拉页面时触发')
        uni.stopPullDownRefresh()
    }
}

3 onTabItemTap 参数说明

属性类型说明
indexString被点击 tabItem 的序号,从 0 开始
pagePathString被点击 tabItem 的页面路径
textString被点击 tabItem 的按钮文字
export default {
    onTabItemTap(options) {
        console.log('被点击tabItem的序号index:' + options.index)
        console.log('被点击tabItem的页面路径pagePath:' + options.pagePath)
        console.log('被点击tabItem的按钮文字text:' + options.text)
    }
}

注意以下几点:

onTabItemTap 常用于点击当前 tabitem,滚动或刷新当前页面。如果是点击不同的 tabitem,一定会触发页面切换。
如果想在 App 端实现点击某个 tabitem 不跳转页面,不能使用 onTabItemTap,可以使用plus.nativeObj.view 放一个区块盖住原先的 tabitem,并拦截点击事件。 在 App 端,从 HBuilderX 1.9 的自定义组件编译模式才开始支持 onTabItemTap。

4 onNavigationBarButtonTap 参数说明

属性类型说明
indexNumber原生标题栏按钮数组的下标
export default {
    onNavigationBarButtonTap(options) {
        console.log('index:' + options.index)
    }
}

5 onBackPress 参数说明

返回结果的格式是这样的:event = {from:backbutton、 navigateBack}。
其中 backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack 表示来源是 uni.navigateBack。

export default {
    onBackPress(options) {
        console.log('from:' + options.from)
    }
}

三 组件生命周期

函数名应用
beforeCreate实例初始化之后调用
created实例创建完成后调用
beforeMount模板编译之前调用
mounted模板编译完成调用
beforeUpdate数据更新时调用,发生在虚拟 DOM 打补丁之前
updated由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子
beforeDestroy实例销毁之前调用
destroyed实例销毁后调用

四 页面生命周期和组件生命周期的执行顺序

页面生命周期函数 onLoad:页面加载
页面生命周期函数 onShow:页面显示
beforeCreate:实例初始化
created:实例创建完成
beforeMount:模板编译之前
mounted:模板编译完成
页面生命周期函数 onReady:页面初次显示

页面生命周期函数 onLoad、onShow 会先运行,接着 Login 组件中的 beforeCreate、created
等组件生命周期函数开始运行。组件加载完成后,页面生命周期函数 onReady 开始运行。

页面生命周期函数 onLoad、onShow 会先运行,接着组件中的 beforeCreate、created 等组件生命周期函数开始运行。组件加载完成后,页面生命周期函数 onReady 开始运行。

像这样比较重复的生命周期函数,我们推荐使用页面生命周期函数,比如:
组件生命周期函数 created 可以替换为页面生命周期中的 onLoad;
组件生命周期函数 mouted 可以替换为页面生命周期中的 onReady。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:21:31  更:2022-12-25 11:22:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 23:20:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码