先给结论:不要继续争论“组件到底有没有问题”,而是把争议页面各截取一段,固定数据、固定视口、固定操作步骤,分别记录组件输出,再交换核对。能复现的差异写成验收样例,不能复现的差异先记为环境差异。这样做的目的不是证明谁对,而是把“我看到的不一样”变成双方都能重复的同一份记录。
同一个组件在A页面正常、在B页面错位,通常只有两类解释。
这两类解释对应完全不同的修复动作。前者要改页面容器或调用方式,后者要统一版本与配置。若不分清就动手,常见结果是改好了B页面、弄坏了A页面。
区分办法是做一次最小对照:把A页面的组件原样放进B页面的容器里,再把B页面的组件原样放进A页面的容器里。观察表现是跟着组件走,还是跟着页面走。
记录时至少写清四项:页面标识、视口宽度、组件输入数据、操作步骤。缺少任何一项,对方都无法重复你的观察,讨论会退回各说各话。
验收样例不是一句“组件显示正常”,而是一段可重复执行、有明确预期输出的短记录。可以按下面的结构写:
假设一个场景:某列表组件在首页显示三列,在详情页只显示一列。先不要判定为缺陷。取同一组数据,把视口固定为同一宽度,分别在两个页面加载,记录列数。若首页三列、详情页一列,且把详情页容器宽度调到与首页一致后恢复三列,那么上下文差异的解释成立,验收样例应写成“容器宽度不小于某值时输出三列”。若宽度一致仍是一列,则版本或配置差异的解释更成立,验收样例应写成“同一版本、同一参数下输出列数一致”。
样例不是越多越好。对同一组件,优先覆盖三类页面:最宽容器、最窄容器、含特殊内容的页面。三类都通过,基本可以判断组件在常见上下文中稳定;只覆盖一类,就无法排除上下文差异。
另一个取舍是:先记录再修改。每改一次,只改一个变量,然后重跑同一份样例。如果一次同时调了容器宽度和组件参数,即使结果变好,也无法知道是哪一项起了作用,下一步该保留什么、回退什么就没有依据。这个动作会直接影响后续判断:单变量记录能让你把有效修改固化为验收条件,多变量混改只能得到一次性的偶然结果。
设计、前端和内容角色对“表现不同”的理解往往不同:设计看视觉,前端看结构,内容看文字是否被截断。把样例写成“前提—动作—预期—实际”后,每个角色都能指出自己关心的那一项,而不是互相转述印象。
需要说明的是,请求量或抓取量在某个页面归零,并不能单独证明组件处理正确。它也可能来自缓存、访问路径变化或统计口径调整。要判断组件是否真的稳定,仍应回到可重复的对照记录,而不是依赖单一指标。
最后一步是把通过的样例并入交付清单:每条样例注明适用页面范围和必要前提。之后同一组件在新页面出现差异时,先对照清单判断是超出适用范围,还是回归缺陷,再决定修改还是补充样例。这样,分歧就不再停留在“我觉得不一样”,而变成一份可以逐条核对的记录。