addEvenListener插入套接字/覆盖子组件的Vuex套接字存储变异

时间:2018-08-02 08:43:23

标签: events vue.js websocket listener vuex

我使用Vue和VueNativeSock。 VueNativeSock具有“ onmessage”事件,每次websocket获取数据时都会触发该事件。我想要实现的是在App组件及其所有子组件中都具有主要onmessage事件,在子组件中具有“第二” onmessage事件。不幸的是在子组件中编写:

  this.$options.sockets.onmessage = (websocket) => { }

覆盖App'a onmessage事件,这是完全可以理解的。有人建议我的解决方案是调用子组件:

  this.$options.sockets.addEventListener('message', eventHandler);

代替:

  this.$options.sockets.onmessage = (websocket) => { }

,它将完成工作。不幸的是,我收到一个错误消息,说addEventListener不是这个函数。我不太了解$ options.sockets,但是我希望并不是每个对象都有addEventListener。

经过少量研究后得出的解决方案是VueNativeSock可以使用Vuex存储,而变异使我先被称为主要事件,随后又被称为主要事件。不幸的是,突变是在商店中而不是在子组件中进行硬编码的。

这里有两个问题:

  1. 是否可以在此上使用addEventListener。$ options.socket 不知何故?如果是这样,该怎么办?
  2. 如何更改一种突变 从硬编码存储区(例如子组件)之外,我的意思是:

    this。$ store.mutations.SOCKET_ONMESSAGE = function(){...}

其中SOCKET_ONMESSAGE是可以提交的套接字事件。

任何帮助将不胜感激。 卡尔雷格

0 个答案:

没有答案