当前位置:首页 > 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方法可以监听全局的页面生命周期事件:

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

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

监听页面滚动

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

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

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

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实现跨页面通信:

uniapp监听页面

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

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

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

注意事项

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

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

相关文章

uniapp支付功能怎么实现

uniapp支付功能怎么实现

uniapp支付功能实现方法 准备工作 注册微信支付、支付宝等平台的开发者账号,获取必要的商户ID(mch_id)、API密钥(key)、应用ID(appid)等信息。确保项目已配置好相关支付SDK。…

uniapp旋转横屏

uniapp旋转横屏

实现横屏模式的方法 在UniApp中实现横屏模式,可以通过配置页面方向或使用CSS旋转实现。以下是两种常见方法: 修改manifest.json配置 在项目的manifest.json文件中,找到"…

uniapp关闭侧滑

uniapp关闭侧滑

禁用全局侧滑返回功能 在pages.json中配置全局禁止侧滑返回: { "globalStyle": { "popGesture": "none" } } 禁用单个页面侧滑…

uniapp斑马

uniapp斑马

uniapp 斑马相关问题解答 uniapp 斑马打印机连接与使用 uniapp 支持通过蓝牙或网络连接斑马打印机,需要借助原生插件或第三方 SDK。以下为常见方法: 蓝牙连接方式 安装 uni-…

投票 uniapp

投票 uniapp

uniapp 投票功能实现 uniapp 是一个基于 Vue.js 的跨平台开发框架,可以用于开发微信小程序、H5、App 等多种应用。实现投票功能需要结合前端界面和后端数据处理。 前端界面设计 使…

vue实现转页面

vue实现转页面

Vue 实现页面跳转的方法 在 Vue 中实现页面跳转可以通过多种方式,主要分为编程式导航和声明式导航两种。以下是具体实现方法: 使用 <router-link> 声明式导航 <r…