有没有一种方法可以在数据库更新时从 vue 更新数据对象?

Is there a method to update a data object from vue when the database updates?

我正在制作一个允许用户创建帐户然后加入房间的网络应用程序。在房间内,他们可以点击一个按钮,基本上可以让他们随机选择要给谁送礼物。我遇到的问题是,如果数据库为所有用户更新,我如何从 vue 更新数据对象。我的意思是,如果另一个用户加入了一个房间,新用户拥有更新的数据对象,但在他之前出现的所有其他用户将拥有过时的数据对象。所以我实质上要问的是,如果数据库更新,vue 将如何更新数据对象。

我说的数据对象是这样的

data() {
 return {
  room: { name: "room", users: [] }
 }
}

update() 生命周期挂钩是否可以做到这一点?或计算()? 在有人回答之前,请记住我需要它来更新加入房间的所有用户。

我在使用 vue2,因为我在使用 vuetify

正如 Fatur 上面所说,通常采用像这样的开放式游戏风格,您加入一个房间,新用户可以加入和离开,您需要设置一个网络连接 (web socket) 以不断了解谁在房间里。

由于您已经在使用 Vuetify 框架,因此您可以很容易地将 Vue Native Websocket 添加到您的项目中。我从未使用过它,但它看起来是一个可靠的项目,并且在相当一致的基础上进行了更新。

我能立即想到的唯一替代方法是:每次用户单击按钮赠送随机用户时,点击数据库或 API 为房间中的所有当前用户.但同样,用户可以在您发出此请求时进入房间,我真的不推荐这样做。 此外,这会严重破坏您的数据库或 API如果你有多个房间,这是另一个原因我不推荐这个