!

This page is not translated yet

The interface, navigation and community content are bilingual. The long-form body of this page is still in Chinese. The translation work is tracked as task I18N-10.

See translation tasks

Interactive Prototype

可交互原型

下面是一个真实可操作的界面原型:投票支持点赞 / 踩 / 撤销三态,评论树支持任意深度嵌套、单条折叠、逐层排序与「继续此讨论串」。所有交互都用与生产一致的状态逻辑实现,可直接作为前端开发与可用性测试的基准。

帖子样例
4
评论节点
15
最大嵌套
6 层
排序策略
4 档

试这几件事: 给帖子点赞后再点一次可撤销;在评论上点左侧三角折叠子树;切换评论排序观察顺序变化;把「最佳」切到「争议」看排序逻辑差异; 观察第 6 层之后缩进停止、改为竖线色标与「继续此讨论串」提示。

Ruyi
1847
c/ruyi_design· 6 小时前文本

我们把评论区从「线性楼层」改成「树形结构」之后,讨论质量发生了什么变化

Llin_devKarma 48.6k

上线树形评论区三个月,我们对比了同一批话题的前后数据。最直观的变化不是评论总量——它只涨了 18%——而是**深层讨论的占比**:深度 ≥ 3 层的评论从 4.2% 上升到 13.7%。 线性评论区的根本问题是它只能容纳一条主线。当 A 提出了一个子论点,B 想讨论这个子论点时,它只能出现在时间轴的后面,和原文脱节。树形结构让「分支」变成了结构的一部分。 但也有代价:移动端的横向空间很容易被缩进吃光。我们的解法是超过 6 层之后改用「左侧竖线 + 层级色标」,并给出「继续此讨论串」的独立页面。

214 条评论
你

原型演示:不写入任何数据

评论排序

当前策略:票数 + 时间衰减 + 子评论数加权

全部评论

15
Rruyi_design原创作者4 小时前

作为创作者补充一个感受:树形结构让我更愿意认真回复。因为在树里,我的回复会紧跟在提出问题的人下面,而不是淹没在几百条时间轴评论里。这个心理感受的差异,可能比数据更值得重视。

512
· 1 条回复
Mmaya_r3 小时前

「回复会紧跟在对的人下面」——这句话其实点出了树形结构的本质价值:它把「对话」还原成了对话。

174
Mmaya_r5 小时前

关键结论是「深层讨论占比」的提升,这个指标选得很准。线性结构下,第三层的讨论几乎注定沉底。但我想追问一句:你们有没有统计过**折叠率**?我担心树形结构会让用户因为「太长」而直接跳过整个评论区。

421
· 7 条回复
Llin_dev版主楼主4 小时前

统计过,折叠率确实上升了,从 3.1% 到 8.4%。但我们的判断是这属于**健康成本**:用户折叠的是自己不关心的分支,而不是整个评论区。相比之下,线性结构下用户是整体跳过。

288
· 5 条回复
Aash_builds3 小时前

补充一个角度:折叠状态如果只存在前端,用户刷新后会全部展开,这个体验非常割裂。我们把折叠状态也同步到了服务端,跨设备保持一致。

143
· 3 条回复
Nnova_ui2 小时前

这个点很关键。我们更进一步,把「已读的子树默认折叠」,用户重新进入帖子时能直接看到自己没读过的部分。

76
· 2 条回复
Kkai_zhou1 小时前

「已读即折叠」这个方案在实现上要注意:已读的判定粒度如果是评论级,会产生大量状态;如果只记到顶层评论级,又不够精准。你们是怎么权衡的?

38
· 1 条回复
Nnova_ui48 分钟前

我们只记到顶层评论的「最后阅读到的评论 ID」,用游标而不是集合。这样存储量恒定,精度也够用——用户真正在意的是「我上次读到哪了」。

21
Rruyi_design原创作者3 小时前

移动端的缩进问题你们最后是怎么解的?我们用固定 padding 之后,20 层之后内容宽度就归零了。

97
Aash_builds4 小时前

同意这个担心。我们的做法是给每条顶层评论一个「N 条回复」的明确入口,让用户先看到规模再决定是否展开,而不是一下子全铺开。

156
Kkai_zhou5 小时前

数据很扎实。但有一个变量可能要排除:你们上线树形评论的同时,是不是也调整了评论排序算法?如果「最佳」排序引入了子评论数加权,那深层讨论占比的提升有一部分可能来自排序本身。

337
· 2 条回复
Llin_dev版主楼主4 小时前

非常好的质疑。我们确实同期上线了「最佳」排序,Best 公式里包含了子评论数加权。所以严格来说,13.7% 这个数字里有一部分是排序贡献的。我们会补一个 AB 实验把变量拆开。

201
· 1 条回复
Mmaya_r3 小时前

期待实验结果。如果排序是主要变量,那说明「让讨论型评论排到前面」比「评论区的结构」更重要,这个结论会改变很多团队的优先级。

88
Aash_builds2 小时前

有个反直觉的现象想问问大家:我们的树形评论区上线后,**顶层评论的数量反而下降了**。我怀疑是因为「回复」比「新开一条顶层评论」的交互成本更低,导致大家更倾向于钻到已有的枝干里。这对话题的多样性会不会有影响?

96
· 1 条回复
Llin_dev版主楼主1 小时前

我们也观察到了同样的现象,幅度是顶层评论 -12%、总评论 +18%。目前的理解是:这属于「讨论的收敛」,未必是坏事,但需要在推荐侧保证冷门分支也能被看到,否则话题会过度集中。

63

原型中体现的设计决策

每个可交互细节都对应功能模块中的一条设计规则。下表把它们对齐,便于开发时逐一落实。

交互细节设计规则所属模块
点赞后再次点击可撤销,计数回落一个用户对同一目标只能有一个有效投票记录,撤销后不计入统计投票与排序算法
已投票按钮高亮为品牌色,未投票为灰色投票必须可撤销、有状态反馈,否则用户体验断层投票与排序算法
点击评论左侧三角折叠该条以下的全部子树折叠状态需持久化,登录用户跨设备保持一致树形评论系统
第 6 层之后停止缩进,改为竖线色标移动端固定缩进会在深层导致内容宽度归零,必须切换方案树形评论系统
深层分支显示「继续此讨论串」入口为深层讨论提供独立页面,只渲染该分支并提供返回上级的入口树形评论系统
切换排序时每层递归应用同一策略排序偏好逐层递归应用,保证树结构语义一致树形评论系统
「最佳」排序同时考虑票数与子评论数Best 公式包含子评论数加权,让「有讨论的评论」排前树形评论系统
票数超过 1000 显示为 1.8k票数统一使用紧凑格式,避免长数字撑破布局投票与排序算法
楼主评论带「楼主」标识评论区需标识内容作者与版主身份,提升阅读效率树形评论系统