01、(二)Uniapp钩子函数的认识

本文档介绍了uni-app的App.vue生命周期函数,包括onLaunch、onShow、onHide等,以及如何使用globalData进行全局变量管理。同时,还详细阐述了页面生命周期函数如onLoad、onShow、onReady等的使用场景。此外,还提及了全局样式设置方法和uni-app的页面间通信。

Uniapp钩子函数的认识

文档:https://uniapp.dcloud.io/collocation/App.html#applifecycle

App.vue是uni-app的主组件,所有页面都是在App.vue下进行切换的,是页面入口文件。但App.vue本身不是页面,这里不能编写视图元素。

这个文件的作用包括:调用应用生命周期函数、配置全局样式、配置全局的存储globalData

01、App.vue 应用生命周期

uni-app 支持如下应用生命周期函数:

函数名说明
onLaunchuni-app 初始化完成时触发(全局只触发一次)
onShowuni-app 启动,或从后台进入前台显示
onHideuni-app 从前台进入后台
onErroruni-app 报错时触发
onUniNViewMessagenvue 页面发送的数据进行监听,可参考 nvue 向 vue 通讯(opens new window)
onUnhandledRejection对未处理的 Promise 拒绝事件监听函数(2.8.1+)
onPageNotFound页面不存在监听函数
onThemeChange监听系统主题变化

02、globalData

小程序有globalData,这是一种简单的全局变量机制。这套机制在uni-app里也可以使用,并且全端通用。

以下是 App.vue 中定义globalData的相关配置:

<script>  
    export default {  
        globalData: {  
            text: 'text'  
        }
    }  
</script>  

js中操作globalData的方式如下: `

修改

getApp().globalData.text = 'test'

获取

let text = getApp().globalData.text;
  • 在应用onLaunch时,getApp对象还未获取,暂时可以使用this.globalData获取globalData。

  • 如果需要把globalData的数据绑定到页面上,可在页面的onShow页面生命周期里进行变量重赋值。

  • globalData是简单的全局变量,如果使用状态管理,请使用vuex(main.js中定义)

03、全局样式

1:在static下面新建一个css/common.css

2:在App.vue引入即可

@import './static/css/common.css'

Pages的生命周期

uni-app 支持如下页面生命周期函数:

函数名说明平台差异说明最低版本
onInit监听页面初始化,其参数同 onLoad 参数,为上个页面传递的数据,参数类型为 Object(用于页面传参),触发时机早于 onLoad百度小程序3.1.0+
onLoad监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参),参考示例
onShow监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面
onReady监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
onHide监听页面隐藏
onUnload监听页面卸载
onResize监听窗口尺寸变化App、微信小程序、快手小程序
onPullDownRefresh监听用户下拉动作,一般用于下拉刷新,参考示例
onReachBottom页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据。具体见下方注意事项
onTabItemTap点击 tab 时触发,参数为Object,具体见下方注意事项微信小程序、QQ小程序、支付宝小程序、百度小程序、H5、App、快手小程序、京东小程序
onShareAppMessage用户点击右上角分享微信小程序、QQ小程序、支付宝小程序、字节小程序、飞书小程序、快手小程序、京东小程序
onPageScroll监听页面滚动,参数为Objectnvue暂不支持
onNavigationBarButtonTap监听原生标题栏按钮点击事件,参数为ObjectApp、H5
onBackPress监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:onBackPress 详解 (opens new window)。支付宝小程序只有真机能触发,只能监听非navigateBack引起的返回,不可阻止默认行为。app、H5、支付宝小程序
onNavigationBarSearchInputChanged监听原生标题栏搜索输入框输入内容变化事件App、H51.6.0
onNavigationBarSearchInputConfirmed监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。App、H51.6.0
onNavigationBarSearchInputClicked监听原生标题栏搜索输入框点击事件(pages.json 中的 searchInput 配置 disabled 为 true 时才会触发)App、H51.6.0
onShareTimeline监听用户点击右上角转发到朋友圈微信小程序2.8.1+
onAddToFavorites监听用户点击右上角收藏微信小程序2.8.1+
  • 仅百度小程序基础库 3.260 以上支持 onInit 生命周期

  • 其他版本或平台可以同时使用 onLoad 生命周期进行兼容,注意避免重复执行相同逻辑

  • 不依赖页面传参的逻辑可以直接使用 created 生命周期替代

    onLoad(e){
       console.log(e.id)
       this.id = e.id;
    },
    
    created(){
    	
    }
    
    

onLoad(获取参数,一次) – onShow(每次切换tabbar/回退都会触发)— created (也是一次,不能获取参数)– onReady(也是一次,可以操作dom对象) - mounted(也是执行一次,只不过数据变更会再次触发)

在Uni-app中,它提供了一系列的生命周期钩子函数,用于控制页面或组件的不同阶段执行相应的操作。以下是一些常用的Uni-app钩子函数: 1. beforeCreate: 在实例初始化之后,数据观测和事件配置之前被调用。在这个阶段,不能访问到data、computed等实例属性。 2. created: 在实例创建完成后被立即调用。在这个阶段,可以访问到data、computed等实例属性。 3. beforeMount: 在挂载开始之前被调用。在这个阶段,可以访问到DOM节点,但还未开始渲染。 4. mounted: 在挂载完成后被调用。在这个阶段,可以访问到DOM节点,并且已经完成了渲染。 5. beforeUpdate: 在数据更新之前被调用,发生在虚拟DOM重新渲染和打补丁之前。在这个阶段,可以对更新之前的状态做一些操作。 6. updated: 在数据更新之后被调用,发生在虚拟DOM重新渲染和打补丁之后。在这个阶段,可以访问到更新后的DOM节点。 7. beforeDestroy: 在实例销毁之前被调用。在这个阶段,实例仍然完全可用。 8. destroyed: 在实例销毁之后被调用。在这个阶段,实例已经被销毁,所有的事件监听器和子实例也被移除。 根据具体的需求,你可以选择适合的钩子函数,并在其回调函数中编写相应的代码逻辑。Uni-app的生命周期钩子函数与Vue的生命周期钩子函数非常类似,如果熟悉Vue的生命周期,可以直接上手使用Uni-app钩子函数。 : https://uniapp.dcloud.io/frame?id=%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F : https://www.jianshu.com/p/345db9ea34fa
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值