优雅实践实验室

Elegant Practice Laboratory

Latest

[EP-007] 优雅弹窗处理

问题提出 在 EP-006 中我们提到了状态管理三个原语,其中加载状态可能会有特殊的需求。例如我们的 UI 设计师和产品一致的认为:我们需要弹出一个加载框,这样可以显式的表示加载状态,并中断用户操作实现伪防抖。或许有他们的道理,即使不够优雅。 但是无论如何加载这个动作总得有个地方去写,写在控制器里?还是说直接封装进网络服务里?请求之前弹出,请求之后关闭?显然这都不够优雅,而且易错,我们需要考虑以下情况: 1. 你的网络请求可能正常执行了,但需要记得关闭加载框(主观的心智负担); 2. 你的网络请求可能会变成错误,你需要在错误的时候关闭加载框; 3. 你可能有多个网络请求,在哪里关闭加载呢? 4. 不只是网络请求,本地的耗时操作也需要加载,完成的时候记得关闭加载框。 你可能会说这有什么,挨个写好就行了。但是错综复杂的业务逻辑,迟早会埋藏 bug,但是解决它仅仅只是个习惯问题,不需要添加太多代码。 优雅实践 弹窗处理需要 context,自然的我们需要在 UI 层去弹窗(TODO: EP-009

By lilua