QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

uniapp

使用UniApp中的$on方法实现事件监听

 shitouadmin  2025-03-22 22:01:50
1. 使用 `uni.$on` 监听事件



你可以在任何页面或组件中使用 `uni.$on` 方法来监听自定义事件。以下是一个简单的示例:
  1. javascript 
  2. // pages/index/index.vue 
  3. export default { 
  4. onLoad() { 
  5. // 监听名为 'customEvent' 的事件 
  6. uni.$on('customEvent', (data) => { 
  7. console.log('接收到 customEvent:', data); 
  8. }); 
  9. }, 
  10. onUnload() { 
  11. // 在页面卸载时移除事件监听器,避免内存泄漏 
  12. uni.$off('customEvent'); 

2. 使用 `uni.$emit` 触发事件
你可以在其他页面或组件中使用 `uni.$emit` 方法来触发这个自定义事件:
  1. javascript 
  2. // pages/other/other.vue 
  3. export default { 
  4. methods: { 
  5. triggerEvent() { 
  6. // 触发名为 'customEvent'的事件,并传递数据 
  7. uni.$emit('customEvent', { message: 'Hello, UniApp!' }); 

3. `$off`:移除事件监听器
为了避免内存泄漏和重复监听的问题,建议在不需要的时候移除事件监听器。你可以使用 `uni.$off`:
- 移除特定事件的监听器:

如果你只想移除某个特定事件的监听器,可以传递事件的名称:
  1. javascript 
  2. uni.$off('customEvent'); 

- 移除所有事件的监听器:
如果你想一次性移除所有事件的监听器,可以不传递任何参数:
  1. javascript 
  2. uni.$off(); 

4. `$once`:一次性的事件监听
如果你只想在某次特定的事件被触发时执行一次回调函数,可以使用 `$once`:
  1. javascript 
  2. // pages/index/index.vue 
  3. export default { 
  4. onLoad() { 
  5. //只会在第一次接收到 customOnce Event时执行回调函数 
  6. un i $ once (' customOnce Event ', (data )=>{ console . log ('接收到 customOnce Event :', data ); }); }, }; 

然后在其他地方通过 emit来触发了该 one-time event:
  1. javascript 
  2. // pages / other / other . vue 
  3. export default { methods :{ trigger Once Event (){ un i $ emit (' customOnce Event ',{ message :' This will only be logged once !'}); }}}; 

这样当 "trigger Once"被调用后,"This will only be logged once!"只会打印出来一次.
总结来说,通过结合 uniapp提供的全局 api如:$ on,$ emit,$ off和$ once,我们可以很方便地实现跨页面的通信与状态管理
¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《使用UniApp中的$on方法实现事件监听》发布于石头博客文章,作者:shitouadmin,如若转载,请注明出处:https://www.pweb123.com/frame/uniapp/1071.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序