你如何从nuxt插件发出事件?

Amr*_*lon 6 nuxt.js

我正在创建一个插件,它将发出由套接字触发的基本 nuxt 事件。然后将收到 nuxt 事件并打开小吃店。当在组件内部时,很容易通过使用发送和接收事件$nuxt

this.$nuxt.$on('open-snackbar', this.handler)
Run Code Online (Sandbox Code Playgroud)
this.$nuxt.$emit('open-snackbar', options)
Run Code Online (Sandbox Code Playgroud)

但是,我如何尝试在插件中执行此操作,因此它不绑定到任何页面,而是存在于整个应用程序中。我似乎无法弄清楚如何从所述插件中发出它:

export default (context) => {
    console.log(context)
    console.log(context.$emit)
    console.log(context.emit)
    console.log(context.$nuxt)
    console.log(context.app.emit)
    console.log(context.app.$nuxt)
}
Run Code Online (Sandbox Code Playgroud)

context.app似乎它是正确的对象,但它似乎不起作用。有任何想法吗?

小智 5

您可以在 plugin.js 文件中使用类似的内容,插件将使用window.$nuxt.$emit客户端提供的内容

export default function (context) {
    $nuxt.$emit('event-to-emit')
}
Run Code Online (Sandbox Code Playgroud)