问题分析
目前主流App的评论区功能大多将评论分成三级来显示,第一级为针对创作内容的评论,第二级为对第一级评论的回复,第三级即为对第二级回复的回复。下面这张图展示了三级回复的层级关系(b站截图)。
比较明显的,二级回复的格式为:xxx:...... 三级回复的格式为:xxx回复xxx:.......,但本质上他们都属于第一级评论的回复列表,在设计时可以将这两级回复归为一类,都为回复类,第一级评论即为评论类,至此,首先将数据的格式给梳理清楚。
具体实现
数据库部分
在不考虑海量数据的情况下,设计以下四张表,用户表,视频作品表,评论表,回复表。
这部分工作量不是很大,主要梳理清楚数据的关系,便于接下来的展示工作。另外应当注意首次拉取数据时应当结合前端传来的limit和offset值拉取少部分数据,避免一次性拉取太多数据导致内存暴涨,之后再根据用户的上拉加载操作分批次拉取数据。
前端展示部分
(以下部分为自己的demo截图)
有了数据,接下来就是如何展示了,我从用户点进视频主页开始依次梳理。
1)用户点击了视频主页
2)分析页面的层级关系
3)评论区的首次展示
4)点击回复框和回复按钮页面状态有哪些改变
5)点击了回复按钮并且发布了回复这个过程发生了什么
6)点进了评论详情页之后状态又有哪些改变
总结
至此,评论区的评论和回复功能梳理清楚了,感觉还是有点复杂的,主要页面的嵌套比较深,状态切换页比较繁琐,可能不是很好的处理方式,但是也是一点一点抠出来了,遂写个总结,也便于以后再来回看下。