当前位置:首页 > uni-app

uniapp广播

2026-03-04 21:00:46uni-app

Uniapp 广播功能实现方法

Uniapp 本身没有内置的广播功能,但可以通过以下几种方式实现类似广播的效果:

全局事件总线

main.js 中创建一个 Vue 实例作为事件总线:

import Vue from 'vue'
export const EventBus = new Vue()

在需要发送广播的页面:

import { EventBus } from '@/main.js'
EventBus.$emit('eventName', data)

在接收广播的页面:

uniapp广播

import { EventBus } from '@/main.js'
EventBus.$on('eventName', (data) => {
  console.log('收到广播', data)
})

使用 uni.$emit 和 uni.$on

Uniapp 提供了全局的自定义事件系统:

发送广播:

uni.$emit('eventName', {msg: '广播消息'})

接收广播:

uniapp广播

uni.$on('eventName', function(data) {
  console.log('收到广播', data.msg)
})

使用本地存储

可以通过 uni.setStorageuni.onStorageChange 实现简单的广播:

设置存储:

uni.setStorage({
  key: 'broadcast',
  data: {type: 'message', content: '广播内容'}
})

监听存储变化:

uni.onStorageChange((res) => {
  console.log('收到广播', res)
})

注意事项

  • 全局事件总线方式适合组件间通信,但要注意及时移除监听,避免内存泄漏
  • uni.$emit/uni.$on 方式适合页面间通信,但要注意事件名的唯一性
  • 本地存储方式适合简单场景,但性能不如事件机制
  • 广播接收方需要在页面加载时就注册监听器

跨端兼容性

  • 所有方法在 H5、小程序和 App 端都可用
  • 小程序端使用 storage 方式时,onStorageChange 需要基础库 2.8.0 以上支持
  • App 端使用 storage 方式时,需要监听 plus.storage 的变化

标签: uniapp
分享给朋友:

相关文章

uniapp 推送

uniapp 推送

uniapp 推送实现方法 uniapp 推送功能可以通过多种方式实现,主要包括使用第三方推送服务、原生插件或云服务。以下是几种常见的实现方案: 使用 UniPush 服务 UniPush 是 D…

uniapp和vue有什么区别

uniapp和vue有什么区别

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

uniapp使用npm

uniapp使用npm

uniapp中使用npm的方法 uniapp支持通过npm安装和管理第三方依赖包,以下是具体操作步骤: 安装Node.js环境 确保本地已安装Node.js(建议使用LTS版本),安装后会自动包含n…

uniapp多环境配置

uniapp多环境配置

多环境配置的必要性 在UniApp开发中,多环境配置能有效区分开发、测试、生产等不同环境的API地址、密钥等参数,避免手动修改代码导致的错误。 创建环境配置文件 在项目根目录下创建env.js或co…

uniapp模板库

uniapp模板库

uniapp模板库推荐 官方模板库 uni-app官方提供多个模板,涵盖电商、社交、新闻等多个领域。这些模板可直接在HBuilderX中通过新建项目选择,包含基础结构和常用功能模块,适合快速启动项目。…

uniapp yuv

uniapp yuv

YUV 格式在 UniApp 中的应用 在 UniApp 中处理 YUV 格式数据通常涉及视频编解码、图像处理或摄像头数据采集。YUV 是一种颜色编码系统,常用于视频传输和图像处理,与 RGB 格式相…