vue 发送事件(通知), 监听事件(通知)

实例: 比如接受到消息聊天消息后需要分发不同对应页面

1, 在接收到消息之后(需要发送监听的地方)需要自定一个事件(通知), 然后发送,来供页面去监听时间(通知)

mounted() {
    window.websocket.onmessage = function (evt) {
        // 定义一个监听事件, 进行发送事件,
        // 注意传的参数要用{detail: xxx}模式, 不然获取参数的地方拿不到参数
        window.dispatchEvent(new CustomEvent('testaaa', { 
            detail: { text: "消息内容"}   
        }))
        console.log('发送通知事件')
    };
  },

2, 在需要使用的页面添加事件(通知)监听

mounted() {
    //添加监听
    window.addEventListener("testaaa", this.testAction)
},
beforeDestroy(){
    //移除监听
    window.removeEventListener("testaaa", this.testAction)
},
methods: {
    // 监听响应方法, 获取传过来的参数是res.detail
    testAction(res) {
      console.log('我监听到了发送的通知', res.detail)
    },
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容