如果同一组件在A页面正常、在B页面异常,先不要改组件本身,而要把“页面提供的运行条件”当作验收对象:用一组只改变单一条件的样例页,确认差异究竟来自容器宽度、样式继承、数据形态还是加载顺序。只有当样例能稳定复现差异时,修复才有可验证的终点。
表现不同不一定意味着组件有缺陷。同一段代码在不同页面可能被不同的外层结构包住,例如一个页面把它放在固定宽度侧栏,另一个页面放在全宽主区;也可能一个页面在组件之后加载了覆盖样式的文件。此时组件源码相同,但输入条件不同。
可操作的判断动作是:在两个页面分别查看该组件根节点的计算样式和实际占位,确认宽度、字体、行高、外边距以及父级溢出规则是否一致。如果这些值不同,优先构造“条件对齐”的样例,而不是直接给组件加补丁。这样做的结果是,你能知道修复应该落在页面模板还是组件内部,避免改错层导致另一页面回归。
验收样例的价值在于可区分原因。建议按下面的顺序建立最小样例集,每个样例只改一个变量:
每个样例都要记录一个可观察结果,例如“在窄容器下按钮换行”“空值时不占位”。结果要能被第三人复现,而不是只写“显示异常”。
假设你在两个页面各放一个样例,发现宽页面正常、窄页面错位,于是判定“组件不支持窄容器”。这个结论可能失效:如果窄页面同时启用了另一套全局样式,错位可能来自样式覆盖,而不是宽度本身。
验证方法是回到只改宽度的样例页,保持样式来源、数据内容和加载顺序不变。若窄容器样例恢复正常,说明原页面的差异另有来源;若仍然错位,宽度才是可确认的条件。这一步的结果直接决定下一步:前者要排查样式加载,后者才需要调整组件布局。
样例稳定后,把它固化成验收条目,而不是留在聊天记录里。每条包含:触发条件、期望表现、实际表现、判定结论。例如“容器宽度小于组件最小宽度时,内容应换行且不横向溢出”。
同时保留一个反例条目,写明“若页面存在额外样式覆盖,需先排除后再判定组件问题”。这样后续改版或换模板时,可以先用同一组样例复测,减少把环境差异误判为组件缺陷的概率。验收样例的作用不是证明组件完美,而是让差异可复现、修复可定位、回归可比较。