U7.08.3The detail page must offer a way back that restores the dashboard's prior state设计
详情页需提供返回并恢复原仪表盘状态的入口
别名: 状态恢复 · 返回导航
概念解释
用户从仪表盘下钻到详情页后,"返回"不只是回到上一个 URL——仪表盘在他们离开时的状态(筛选条件、时间范围、展开的面板、选中的图表)是一份需要恢复的工作现场。如果返回后仪表盘重置为默认状态,用户必须重新设置一遍筛选才能继续刚才的排查,或者在忘记自己设过什么的情况下看到一份陌生数据。"返回"的完整语义是恢复现场,不是回到起点。
机制
这个问题与筛选上下文的传递是同一枚硬币的两面:去程需要"带过去",回程需要"带回来"。技术实现上,如果筛选状态序列化在 URL 中,浏览器的历史栈天然保存了每个状态快照,返回时恢复是自动的;如果状态只存在组件内存中,返回(尤其是通过浏览器后退键)后状态已被重新初始化,工作现场即告丢失。认知层面的代价在于排查链的连续性:用户在详情页获得了一条线索("异常集中在移动端"),回到仪表盘后的下一步动作依赖刚才的仪表盘状态(对比移动端与其他渠道的曲线),重置后他们必须重建这个前提才能行动——每多一次重建,排查中断的概率就增加一次。
边界
浏览器后退按钮与页面内返回链接的行为可能不一致:后退键恢复的是浏览器历史记录里的 URL(包含筛选参数),页面内的"返回"按钮如果是硬编码到默认仪表盘 URL 则会丢弃上下文——两个返回入口必须语义一致。多标签页或长会话场景下,用户可能同时开多个仪表盘状态,返回时恢复的目标必须是与当前详情页对应的那个快照,而不是"最近的仪表盘"。会话超时或登录过期后,状态恢复需要与重新认证的流程衔接,否则用户返回后看到的是登录页而不是仪表盘。
怎么落地
- 仪表盘的每个状态变化(筛选、范围、展开)同步写入 URL,让浏览器历史栈自然成为状态快照序列。
- 页面内返回链接使用
history.back()或指向上一个完整 URL(含参数),绝不硬编码默认仪表盘地址。 - 深层详情页提供面包屑(仪表盘名 > 区块 > 明细),每级都可点击返回并携带对应状态。
- 验证:在仪表盘设置非默认状态后下钻三层,再用浏览器后退与页面内返回各走一遍,核对每次回到的仪表盘状态是否与离开时完全一致。