当前位置:首页 > 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实现跨页面通信:

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

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

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

注意事项

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

uniapp监听页面

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

相关文章

vue实现引导页面

vue实现引导页面

vue实现引导页面的方法 使用Vue实现引导页面可以通过多种方式完成,以下是几种常见的方法: 使用第三方库driver.js 安装driver.js库: npm install driver.j…

vue实现两个登录页面

vue实现两个登录页面

实现多个登录页面的方法 在Vue项目中实现两个不同的登录页面,可以通过路由配置和组件分离的方式完成。以下是具体实现方法: 配置路由文件 在router/index.js中定义两个独立的路由,分别指向…

h5实现登录页面跳转页面跳转页面

h5实现登录页面跳转页面跳转页面

实现H5登录页面跳转 在H5中实现登录页面跳转可以通过多种方式完成,以下是几种常见方法: 使用window.location.href window.location.href = '目标页面UR…

uniapp应用市场

uniapp应用市场

uniapp应用市场概述 Uniapp作为跨平台开发框架,支持将代码编译到iOS、Android、Web及各类小程序平台。其应用市场(插件市场)是开发者获取扩展插件、模板、组件的重要资源库,涵盖UI组…

uniapp树形选择

uniapp树形选择

uniapp树形选择实现方法 使用uni-data-checkbox组件 uniapp内置的uni-data-checkbox组件支持树形结构选择,适用于多级分类场景。配置时需要将数据格式化为树形结构…

uniapp前端项目

uniapp前端项目

Uniapp 前端项目开发指南 Uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App 等)。以下是关于 Uniapp 前端项目的关键信息:…