先给出直接回答:不要把“组件本身有问题”当成结论,而要把组件放进它出现差异的那几个页面里,逐页固定输入、记录输出,构造一组可重复的对照样例。缺少完整数据或后台权限时,最小可执行动作是手工截取每个页面的相同区域,用同一浏览器宽度、同一账号状态、同一滚动位置各记录一次,先把差异归到“页面上下文”还是“组件自身”,再决定下一步是改组件还是改调用方式。
同一个组件在不同页面表现不同,常见原因不在组件代码,而在调用它的页面给了不同条件。可区分的证据大致有三类:
如果同一页面在刷新前后也不一致,还要考虑异步数据到达顺序,这属于第四类,需要单独记录时间点。缺少接口权限时,你仍能通过页面快照区分前三类,但不能据此断定是数据源的问题。
假设你手上有两个页面都放了同一个卡片组件,A 页正常、B 页错位。可以按下面顺序操作:
做完这一步,如果发现 B 页容器比 A 页窄,而组件内部用了固定宽度,那么差异就落在容器与组件宽度的配合上,下一步应改调用处的容器约束,而不是重写组件。这个动作的结果会直接决定你后面是动样式还是动结构。
验收样例的价值在于可重复。建议至少固定以下变量,并在样例里写明:
这里要说明适用条件:如果组件依赖实时接口,而你没有稳定数据,样例只能验证布局对内容长度的容忍度,不能推出线上真实数据下的表现。请求量或抓取量归零也不能单独证明组件处理正确,它还可能来自缓存、页面未触发或统计口径变化。
假设某山西网站开发项目中,资讯页与产品页共用同一个标签组件。资讯页标签在窄容器里换行正常,产品页标签溢出容器。按上面的方法记录后得到:资讯页容器宽 720 像素,产品页容器宽 480 像素,组件内部标签最小宽度设为 120 像素且不换行。此时可判定差异来自容器宽度与组件最小宽度的冲突。下一步动作是把组件的换行策略改为按容器宽度自适应,然后在两个页面各复测一次。若复测后产品页仍溢出,则说明还有第三个变量未固定,需要回到样例表继续排查,而不是直接认定组件已修好。
在没有完整数据或权限的情况下,你仍能完成的最小动作是:固定视口、固定账号状态、固定内容长度,记录容器宽度与组件实际渲染尺寸,形成两到三页的对照样例。能得出的结论是差异出现在哪个页面上下文;不能得出的结论包括:组件在所有页面都坏、某个数据源有问题、改完就一定在所有设备正常。把这两类结论分开写进验收记录,后续无论是自己改还是交给他人改,判断依据都不会被夸大。