Rumah >hujung hadapan web >uni-app >Analisis mendalam tentang kitaran hayat uni-app
Artikel ini membawa anda pengetahuan yang berkaitan tentang kitaran pengisytiharan uniapp Ia terutamanya memperkenalkan isu yang berkaitan dengan kitaran pengisytiharan aplikasi, kitaran hayat halaman dan kitaran hayat komponen saya harap ia akan membantu semua orang.
Disyorkan: "tutorial uniapp"
uni-app
Menyokong hayat aplikasi berikut kitaran Fungsi:
Nama fungsi | Penerangan | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
onLaunch | Dicetuskan apabila
|
||||||||||||||||||
onShow | Apabila Mulakan atau masukkan latar depan dari latar belakang | ||||||||||||||||||
onHide | Apabila masukkan latar belakang dari latar depan | ||||||||||||||||||
onError | Dicetuskan apabila melaporkan ralat | ||||||||||||||||||
onUniNViewMessage | untuk nvue halaman Untuk memantau data yang dihantar, sila rujuk nvue berkomunikasi dengan vue |
||||||||||||||||||
onUnhandledRejection | Tolak fungsi mendengar acara untuk Promise yang tidak diproses (2.8. 1) td> | ||||||||||||||||||
onPageNotFound | Halaman tidak mempunyai fungsi mendengar | ||||||||||||||||||
onThemeChange | Tukar tema sistem mendengar |
Nota
App.vue
dan pemantauan pada halaman lain adalah tidak sah. uni-app
Menyokong fungsi kitaran hayat halaman berikut:
函数名 | 说明 | 平台差异说明 | 最低版本 |
---|---|---|---|
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 | 监听页面滚动,参数为Object | nvue暂不支持 | |
onNavigationBarButtonTap | 监听原生标题栏按钮点击事件,参数为Object | App、H5 | |
onBackPress | 监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:onBackPress 详解。支付宝小程序只有真机能触发,只能监听非navigateBack引起的返回,不可阻止默认行为。 | app、H5、支付宝小程序 | |
onNavigationBarSearchInputChanged | 监听原生标题栏搜索输入框输入内容变化事件 | App、H5 | 1.6.0 |
onNavigationBarSearchInputConfirmed | 监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。 | App、H5 | 1.6.0 |
onNavigationBarSearchInputClicked | 监听原生标题栏搜索输入框点击事件(pages.json 中的 searchInput 配置 disabled 为 true 时才会触发) | App、H5 | 1.6.0 |
onShareTimeline | 监听用户点击右上角转发到朋友圈 | 微信小程序 | 2.8.1 |
onAddToFavorites | 监听用户点击右上角收藏 | 微信小程序 | 2.8.1 |
onInit
Nota Penggunaan
onReachBottom
Ambil perhatian bahawa pencetus di bahagian bawah halaman tertentu boleh ditakrifkan dalam pages.json Jarak onReachBottomDistance, sebagai contoh, ditetapkan kepada 50, kemudian apabila halaman itu ditatal ke 50px dari bawah, acara onReachBottom akan dicetuskan.
Jika paparan tatal digunakan dan halaman tidak tatal, acara bawah tidak akan dicetuskan. Untuk acara di mana tatal lihat tatal ke bawah, sila rujuk dokumen tatal paparan
onPageScroll
(pemantauan tatal, dengar tatal, acara tatal) perihalan parameter:
属性 | 类型 | 说明 |
---|---|---|
scrollTop | Number | 页面在垂直方向已滚动的距离(单位px) |
Nota Jangan tulis js interaktif kompleks dalam
onPageScroll
, seperti pengubahsuaian halaman yang kerap. Oleh kerana kitaran hayat ini dicetuskan dalam lapisan pemaparan, pada bahagian bukan h5, js dilaksanakan dalam lapisan logik dan terdapat kehilangan dalam komunikasi antara kedua-dua lapisan. Jika pertukaran data antara dua lapisan sering dicetuskan semasa proses menatal, ia boleh menyebabkan ketinggalan. onBackPress
, yang akan mengakibatkan kegagalan untuk menghalang pengembalian lalai async
onPageScroll : function(e) { //nvue暂不支持滚动监听,可用bindingx代替 console.log("滚动距离为:" + e.scrollTop); },
Perihalan objek json yang dikembalikan: onTabItemTap
属性 | 类型 | 说明 |
---|---|---|
index | String | 被点击tabItem的序号,从0开始 |
pagePath | String | 被点击tabItem的页面路径 |
text | String | 被点击tabItem的按钮文字 |
Nota
onTabItemTap : function(e) { console.log(e); // e的返回格式为json对象: {"index":0,"text":"首页","pagePath":"pages/index/index"} },
Perihalan parameter: onNavigationBarButtonTap
属性 | 类型 | 说明 |
---|---|---|
index | Number | 原生标题栏按钮数组的下标 |
onNavigationBarButtonTap : function (e) { console.log(e); // e的返回格式为json对象:{"text":"测试","index":0} }
Perihalan objek parameter panggil balik: onBackPress
Atribut | Jenis th> | Penerangan | ||||||
---|---|---|---|---|---|---|---|---|
daripada | String | Sumber yang mencetuskan gelagat kembali: 'butang belakang' - butang bar navigasi penjuru kiri sebelah atas dan kekunci pulangan Android 'navigateBack' - kaedah uni.navigateBack(). Aplet Alipay tidak menyokong pemulangan medan ini
|
export default { data() { return {}; }, onBackPress(options) { console.log('from:' + options.from) } }
注意
navigateBack
引发的返回事件(使用小程序开发工具时不会触发onBackPress
),不可以阻止默认返回行为uni-app
组件支持的生命周期,与vue标准组件的生命周期相同。这里没有页面级的onLoad等生命周期:
函数名 | 说明 | 平台差异说明 | 最低版本 |
---|---|---|---|
beforeCreate | 在实例初始化之后被调用。详见 | ||
created | 在实例创建完成后被立即调用。详见 | ||
beforeMount | 在挂载开始之前被调用。详见 | ||
mounted | 挂载到实例上去之后调用。详见 注意:此处并不能确定子组件被全部挂载,如果需要子组件完全挂载之后在执行操作可以使用$nextTick Vue官方文档 |
||
beforeUpdate | 数据更新时调用,发生在虚拟 DOM 打补丁之前。详见 | 仅H5平台支持 | |
updated | 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。详见 | 仅H5平台支持 | |
beforeDestroy | 实例销毁之前调用。在这一步,实例仍然完全可用。详见 | ||
destroyed | Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。详见 |
推荐:《uniapp教程》
Atas ialah kandungan terperinci Analisis mendalam tentang kitaran hayat uni-app. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!