Nuxt Js 事件触发两次
Nuxt Js Event Fires Twice
我正在为正在构建的应用程序使用 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)
}
}
伙计们,我该如何解决这个问题?我需要你的帮助。
也许您只能在客户端调用该父方法。
您可以编写这样的代码来防止在服务器端发出:
methods: {
playAll(songs) {
if (process.server) return
this.$events.$emit('playAll', songs)
}
}
或者服务器端不调用playAll方法。 (例如:创建、安装...)
您需要先关闭该事件。
this.$events.$off("playAll");
this.$events.$on('playAll', data => {
this.initPlaylist(data.songs) //runs twice
})
我正在为正在构建的应用程序使用 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)
}
}
伙计们,我该如何解决这个问题?我需要你的帮助。
也许您只能在客户端调用该父方法。
您可以编写这样的代码来防止在服务器端发出:
methods: {
playAll(songs) {
if (process.server) return
this.$events.$emit('playAll', songs)
}
}
或者服务器端不调用playAll方法。 (例如:创建、安装...)
您需要先关闭该事件。
this.$events.$off("playAll");
this.$events.$on('playAll', data => {
this.initPlaylist(data.songs) //runs twice
})