Nuxt Js事件两次触发

时间:2018-08-24 19:55:01

标签: vue.js vuejs2 nuxt.js vue-events

我正在为构建的应用程序使用Nuxt js SSR,我安装了Vue Event插件,但是当我发出事件时,它将在侦听器上运行两次。创建的钩子也运行两次。

模块正在使用: Axios,Auth,Toast

子组件

methods: {
  initPlaylist(songs) {
    console.log(songs)
  }
},
mounted () {
  this.$events.$on('playAll', data => {
    this.initPlaylist(data.songs) //runs twice
  })
}

父组件

method () {
    playAll (songs) {
      this.$events.$emit('playAll', songs)
  }
 }

我该如何解决这个问题?我需要你的帮助。

1 个答案:

答案 0 :(得分:0)

也许您只需要在客户端调用该父方法。

您可以编写这样的代码以防止在服务器端发出:

methods: {
  playAll(songs) {
    if (process.server) return

    this.$events.$emit('playAll', songs)
  }
}

或不要在服务器端调用playAll方法。 (例如:已创建,已安装...)