点赞功能最佳实践
点赞功能
场景说明
点赞功能广泛应用于社交、内容平台等场景,用于提升用户互动和内容热度。常见于朋友圈、评论区、文章、商品等内容的互动。
数据模型设计
新建点赞表(如 like),字段建议:
用户ID(user_id):与账户表关联
目标对象ID(target_id):如文章、评论、商品等的唯一标识
点赞时间(created_at)
目标对象表(如 article/comment/product)无需冗余点赞数,可通过聚合查询统计
组件搭建与交互逻辑
在目标内容区域添加点赞按钮(如心形/拇指图标)。
显示点赞数(可用文本组件)。
配置按钮点击事件:
若当前用户未点赞,则新增一条点赞记录,点赞数+1,按钮高亮。
若已点赞,则删除点赞记录,点赞数-1,按钮恢复未选中。
可通过条件式容器或按钮状态切换实现高亮/未高亮。
点赞数实时更新:
通过页面数据源数据统计点赞表中目标对象ID的记录数。
支持页面刷新或局部刷新。
操作步骤示例
第一步:新建数据模型
新建点赞表
在账户表与点赞表之间建立一对多关系。
在文章表与点赞表之间建立一对多关系。
建立关系后会产生对应的关系字段:账户_账户,文章_文章表
第二步:页面组件搭建
在内容卡片、详情页等区域添加点赞按钮和点赞数。
点赞按钮可用条件式容器切换“已点赞/未点赞”两种状态。
第三步:交互配置
按钮点击时:
判断当前用户是否已点赞(可通过过滤点赞表的账户_账户,文章_文章表两个字段判断是否有记录)。
未点赞则添加点赞记录,已点赞则删除。
操作成功后刷新点赞数。
页面数据源过滤条件配置
未点赞已点赞
第四步:统计与防刷
点赞数统计:页面数据源聚合点赞表,按文章_文章表过滤分组统计数量。
防止重复点赞:按钮状态根据当前用户是否已点赞动态切换。
可结合平台内置变量、数据过滤条件实现防刷和统计。
常见问题
如何防止重复点赞?
通过 user_id+target_id 唯一性约束或前端判断,已点赞则不可重复操作。
如何统计总点赞数?
页面数据源聚合查询 like 表,按目标对象分组计数。
如何实现点赞动画或高亮?
条件式容器切换不同图标或样式,配合动画组件。
建议结合平台内置变量、数据过滤、聚合查询等能力实现高效点赞功能。