uni-app 是一个使用 Vue.js 开发所有前端应用的框架,可以编译到 iOS、Android、H5、以及各种小程序等多个平台。以下是 uni-app 页面生命周期的详细介绍,包括一些简单的示例:
options
是一个包含页面路径参数的对象。onLoad(options) {
console.log(options.id); // 输出上一个页面传递的 id 参数
}
onShow() {
this.fetchData(); // 调用方法获取最新数据
}
onReady() {
this.initChart(); // 初始化图表
}
onHide() {
this.video.pause(); // 停止视频播放
}
onUnload() {
clearInterval(this.timer); // 清除定时器
}
onPullDownRefresh() {
this.fetchData().then(() => {
uni.stopPullDownRefresh(); // 停止下拉刷新动画
});
}
onReachBottom() {
this.loadMoreData(); // 加载更多数据
}
options
是一个包含分享配置的对象。onShareAppMessage(options) {
return {
title: '分享标题',
path: '/pages/index/index?id=123'
};
}
Object
包含 scrollTop
属性。onPageScroll(e) {
if (e.scrollTop > 100) {
this.showToTop = true; // 显示返回顶部按钮
} else {
this.showToTop = false; // 隐藏返回顶部按钮
}
}
Object
包含 index
、pagePath
、text
等字段。onTabItemTap(item) {
console.log(item.index); // 输出点击的 tab 索引
}
在 uni-app 中,以下是你提到的几个生命周期函数和事件的详细说明:
export default {
// ...
onNavigationBarButtonTap(e) {
console.log('导航栏按钮被点击', e.index);
// e.index 是按钮在数组中的索引
}
// ...
};
true
,则不会返回上一页。export default {
// ...
onBackPress(options) {
// 显示确认对话框
uni.showModal({
title: '提示',
content: '确定要退出吗?',
success: function (res) {
if (res.confirm) {
// 用户点击确定,执行退出操作
uni.navigateBack();
} else if (res.cancel) {
// 用户点击取消,不执行退出操作
}
}
});
// 返回 true 表示不执行默认的返回行为
return true;
}
// ...
};
export default {
// ...
onNavigationBarSearchInputChanged(e) {
console.log('搜索框内容变化', e.text);
// e.text 是搜索框中的文本内容
}
// ...
};
export default {
// ...
onNavigationBarSearchInputConfirmed(e) {
console.log('搜索确认', e.text);
// 执行搜索操作
}
// ...
};
export default {
// ...
onNavigationBarSearchInputClicked() {
console.log('搜索框被点击');
// 弹出搜索历史等操作
}
// ...
};
export default {
// ...
onShareTimeline() {
return {
title: '分享到朋友圈的标题',
imageUrl: '分享到朋友圈的图片URL',
query: '分享参数'
};
}
// ...
};
export default {
// ...
onAddToFavorites(options) {
return {
title: '收藏的标题',
imageUrl: '收藏的图片URL',
query: '收藏参数'
};
}
// ...
};
特别注意的是,这些事件和生命周期函数的使用可能会根据不同的平台(如小程序、H5、App)有所差异,差异入下图:
{
return {
title: ‘收藏的标题’,
imageUrl: ‘收藏的图片URL’,
query: ‘收藏参数’
};
}
// …
};
特别注意的是,这些事件和生命周期函数的使用可能会根据不同的平台(如小程序、H5、App)有所差异,差异入下图:
[外链图片转存中...(img-yx112bG5-1729863834209)]
##