vue3 中,如何使用 MQTT 或 websocket 统一接收数据,页面单独处理数据

2023-03-26 21:56:50 +08:00
 jahnsli

vue3 中,如何使用 MQTT 或 websocket 统一接收数据,页面中单独处理数据

mqtt.js


  const onConnected = () => {
    onMessage();
  }
  
  const onMessage = (data) => {
  	const {obj1,obj2} = data
    // 如何在这里将 obj1 数据传递 page1 ,将 obj2 数据传递 page2
  }

page1

在这里只接收 obj1 数据
page2
在这里只接收 obj2 数据
2586 次点击
所在节点    Vue.js
13 条回复
vace
2023-03-26 23:01:33 +08:00
1. pinia 或者 vuex 之类的状态管理同步
2. event bus: https://v3-migration.vuejs.org/breaking-changes/events-api.html

bus.$emit('message-1', obj1)
bus.$emit('message-2', obj2)

page1:
bus.$on('message-1', ...)
page2:
bus.$on('message-2', ...)
pubby
2023-03-26 23:06:34 +08:00
vuex 之类的,在 app 里 commit 消息

page 里各自 subscribe ,取需要的数据
hb1988
2023-03-27 08:34:49 +08:00
补充 rxjs ; customEvent ;
musi
2023-03-27 08:39:37 +08:00
存到 store 里,然后页面自己拿
erhsilence
2023-03-27 08:55:21 +08:00
mitt
jahnsli
2023-03-27 09:59:29 +08:00
@vace event bus 或许可以,如果 pinia 的话 obj1 obj2 都存在一起,可能会很臃肿
jahnsli
2023-03-27 10:00:28 +08:00
@pubby 没太理解~~ 是否可以提供个简单的 demo
jahnsli
2023-03-27 10:00:45 +08:00
@musi 如果 pinia 的话 obj1 obj2 都存在一起,可能会很臃肿
jahnsli
2023-03-27 10:01:06 +08:00
@erhsilence 想到这个,但不知道还有没有更好的方案
jahnsli
2023-03-27 10:01:40 +08:00
@hb1988 单独引入 rxjs ,是否有点多余, customEvent 或许可以
lingxiaoli
2023-03-27 10:37:15 +08:00
@jahnsli #8 你就是用两个文件来定义 store 来存 最后还是在内存里 不清楚你所谓的不臃肿意义在哪里?
musi
2023-03-27 11:28:53 +08:00
@jahnsli #8
1. 只要你需要用数据,数据就会存在内存里,引用数据类型存多次也只是引用存了多次
2. 如果你不需要数据,置为 null 就是
rm0gang0rf
2023-04-03 13:57:19 +08:00
在下全局变量了,刚刚写完。。是不是很 low~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/927351

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX