当前位置:首页 > uni-app

uniapp监听页面

2026-03-05 02:56:54uni-app

监听页面生命周期

在uniapp中监听页面生命周期可以通过两种方式实现:使用页面生命周期钩子函数或使用全局事件监听。

页面生命周期钩子函数 每个页面可以定义特定的生命周期函数,这些函数会在对应生命周期阶段自动触发。例如:

export default {
  onLoad() {
    console.log('页面加载');
  },
  onShow() {
    console.log('页面显示');
  },
  onReady() {
    console.log('页面初次渲染完成');
  },
  onHide() {
    console.log('页面隐藏');
  },
  onUnload() {
    console.log('页面卸载');
  }
}

全局事件监听 通过uni.on/uni.off方法可以监听全局的页面生命周期事件:

uniapp监听页面

// 监听页面显示事件
uni.onPageShow((res) => {
  console.log('页面显示', res);
});

// 监听页面隐藏事件
uni.onPageHide((res) => {
  console.log('页面隐藏', res);
});

监听页面滚动

监听页面滚动可以使用onPageScroll生命周期函数:

export default {
  onPageScroll(e) {
    console.log('页面滚动', e.scrollTop);
  }
}

对于需要节流处理的滚动事件,可以配合使用lodash的throttle方法:

uniapp监听页面

import { throttle } from 'lodash';

export default {
  onPageScroll: throttle(function(e) {
    console.log('节流后的滚动事件', e.scrollTop);
  }, 200)
}

监听页面尺寸变化

监听窗口尺寸变化可以使用onResize生命周期函数:

export default {
  onResize(res) {
    console.log('窗口尺寸变化', res.size);
  }
}

监听页面返回事件

处理页面返回操作可以通过onBackPress生命周期函数:

export default {
  onBackPress() {
    console.log('返回按钮被点击');
    // 返回true可以阻止默认返回行为
    return true;
  }
}

自定义事件监听

除了系统提供的事件,还可以使用uni.$on/uni.$emit实现跨页面通信:

// 页面A发送事件
uni.$emit('customEvent', { data: 'value' });

// 页面B监听事件
uni.$on('customEvent', (data) => {
  console.log('接收到自定义事件', data);
});

// 记得在页面卸载时移除监听
uni.$off('customEvent');

注意事项

  • 生命周期函数应避免执行耗时操作
  • 全局事件监听需要在适当时机移除,避免内存泄漏
  • 小程序和H5平台的部分生命周期行为可能有差异
  • 页面滚动监听在频繁触发时应注意性能优化

标签: 页面uniapp
分享给朋友:

相关文章

uniapp和vue有什么区别

uniapp和vue有什么区别

uniapp和vue的区别 1. 定位与用途 Vue:一个渐进式JavaScript框架,专注于构建用户界面,适用于开发单页应用(SPA)或复杂前端项目。 UniApp:基于Vue.js的跨…

uniapp设置title

uniapp设置title

设置页面标题的方法 在UniApp中设置页面标题可以通过以下几种方式实现,适用于不同场景和需求。 通过pages.json配置 在pages.json文件中,可以为每个页面单独配置导航栏标题。找到对…

uniapp中如何使用iconfont

uniapp中如何使用iconfont

使用 Iconfont 在 Uniapp 中的步骤 下载 Iconfont 资源 访问 Iconfont 官网,选择需要的图标并添加到项目。下载时选择 Font class 格式,解压后会得到 .tt…

uniapp 绘图

uniapp 绘图

uniapp 绘图方法 使用 Canvas 组件 uniapp 支持通过 canvas 组件实现绘图功能。在模板中声明 canvas 并设置宽度、高度和 ID,通过 JavaScript 调用绘图 A…

h5页面实现扫一扫

h5页面实现扫一扫

调用设备摄像头实现扫描功能 在H5页面中实现扫一扫功能通常需要调用设备的摄像头,并通过JavaScript解析摄像头捕获的图像。以下是几种常见的实现方法: 使用HTML5的getUserMedia…

实现vue页面回退

实现vue页面回退

使用 Vue Router 的编程式导航 在 Vue 组件中调用 this.$router.go(-1) 可以实现页面回退。该方法通过操作浏览器历史记录栈实现后退功能,类似于点击浏览器的后退按钮。…