当前位置: 首页 > news >正文

uniapp页面间通信uni.$on与通过uni.navigateTo中eventChannal的方式的区别

  • 背景。无意间开发uniapp程序用到了页面跳转数据传递的两种方式。但各用于什么场景,有什么区别记录一下。大模型给的内容较多,贴出一些结论。
  • eventChannel文档链接
  • uni.$emit文档链接

在这里插入图片描述 在这里插入图片描述

  • 页面跳转而非全局事件通知,优先选择eventChanel的方式。

    1. 首先它可以方便的传递json数据,而无需通过向url后跟随参数的方式进行加码转码,非常方便
    2. 另外可以双向通信。当使用navigateBack回到页面的时候还可以发消息通知原页面。
    3. 而uni.$on的方式只能用于监听不能够传递。
    4. 另外这两种方式在页面布局上也不同。chanel方式捆绑着navigateTo进行消息发送和事件定义监听。而 o n 的方式是通过全局 ‘ u n i . on的方式是通过全局`uni. on的方式是通过全局uni.on`声明
  • eventChannel方式

  • 注册。接收调用方传递的参数

在这里插入图片描述

  • 发送。打开页面成功后,前提是被调用的页面已成功通过onLoad方法注册了相同的事件moreDoctor。就通过emit发送数据,被调用页面接收处理。

在这里插入图片描述

  • uni.$on的方式

在这里插入图片描述

  • 总结。
    1. 翻阅uniapp官网查看文档有时随所可以用,但用的不对,需要改正。
    2. 发现有相同功能点。意识到区别,避免滥用。

相关文章:

  • 2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷(三)
  • Nginx + ELK + Grafana 全球访问热力图
  • php的案例分析----typecho项目
  • Java全栈面试实录:从电商平台到AIGC,技术栈深度解析
  • Spring整合MyBatis常见问题解决:NoSuchBeanDefinitionException与映射文件冲突
  • AI矢量图与视频无痕修复:用Illustrator与After Effects解锁创作新维度
  • leetcode-2311.小于等于k的最长二进制子序列
  • 如何进行 iOS App 混淆加固?IPA 加壳与资源保护实战流程
  • Redis核心知识详解:从全局命令到高级数据结构
  • 大屏可视化制作指南
  • redis总结
  • 鸿蒙实时音视频流处理框架开发实战——基于HarmonyOS 4.0与分布式软总线的低延时高可靠架构
  • php项目部署----------酒店项目
  • CUDA —— 1.1、C++与CUDA混合编程,C++调用cuda自定义类进行运算操作(附:Windows下Vs2017编程环境配置)
  • 怎么把本地仓库push 到gitlab 上
  • GitLab 18.1 发布 Runner、无效的个人访问令牌查看等功能,可升级体验!
  • Unity AR构建维护系统的以AI驱动增强现实知识检索系统
  • [C#]C# winform部署yolov13目标检测的onnx模型
  • VTK中的形态学处理
  • Pytest项目_day03(Postman使用)