Vue js 和 favorite/like 按钮

Vue js and favorite/like button

我想知道收藏、订阅或喜欢按钮的工作原理。 我有点不明白。

例如:

用户喜欢 ID 为 243 的 post。

一个ajax请求被发送到id为post(243)的服务器[这里回来了,更新了用户最喜欢的列表,包括那个post] 并且服务器发回成功响应。

现在,我想如何处理修改点赞按钮以实际显示点赞(永久,包括刷新)。

我怎样才能在 Vue JS 中实现它。事情如何更新?这部分没看懂

如果服务器发回成功的响应,您可以增加已经存在的数字。

这个初始数字是您通过道具、直接从服务器或通过初始 AJAX 请求获得的。

如果您想 "permanently" 更新按钮上的点赞数量,您必须将其保存到数据库(或其他一些存储介质)中。在您的服务器上,您可以有一个路由接受 post id 作为参数并增加该特定用户 post:

/incrementlike/243

这就是您要向其发出 POST ajax 请求的地方。大多数情况下,在 MVC 框架中,您会有一个控制器 action/method 映射到此路由,该路由包含响应此调用的逻辑。

如果您对向服务器发出 AJAX 请求以在后端增加您的喜欢后发生的部分感兴趣,我建议您阅读路由或 MVC 结构。

具体情况视具体情况而定。这实际上取决于很多因素,例如,当 post 被点赞时,您的后端对它做了什么。

如果您想要一个通用的 'explanation' 我在下面附上的过程,这并不是真正的 Vue 特定的,但总体思路是相同的:

前端:

  • 修改你的本地状态 post 以设置正确的标志,例如。 post1.liked = true 单击时立即发送请求到服务器。
  • 确保您的 GUI 代表此更改。前任。按钮的颜色基于每个 post 的 属性 'liked'。
  • 如果从服务器收到失败响应,通知用户并允许他们'try again'或类似的东西。
  • 刷新页面时,确保从服务器获取更改,如果您正确完成了后端部分,则 post 状态的修改在您从您的服务器接收到的数据中将是正确的后端(post1.liked 为真)

后端

当请求进来时,以正确的方式修改 post 的状态,并确保下次获取 post 时,发送新的状态。