[EP-005] 优雅抽离小组件
本文介绍了关于抽离小组件的最佳实践,并提及了在官方视频中没有提到的一些注意事项和特殊情况。
本文介绍了关于抽离小组件的最佳实践,并提及了在官方视频中没有提到的一些注意事项和特殊情况。
这里重新补习一下别人几乎不会提起的常用的状态管理 api,并举了一个简单的登录案例来练习只使用原语编程带来的清晰感。
问题提出 在 EP-006 中我们提到了状态管理三个原语,其中加载状态可能会有特殊的需求。例如我们的 UI 设计师和产品一致的认为:我们需要弹出一个加载框,这样可以显式的表示加载状态,并中断用户操作实现伪防抖。或许有他们的道理,即使不够优雅。 但是无论如何加载这个动作总得有个地方去写,写在控制器里?还是说直接封装进网络服务里?请求之前弹出,请求之后关闭?显然这都不够优雅,而且易错,我们需要考虑以下情况: 1. 你的网络请求可能正常执行了,但需要记得关闭加载框(主观的心智负担); 2. 你的网络请求可能会变成错误,你需要在错误的时候关闭加载框; 3. 你可能有多个网络请求,在哪里关闭加载呢? 4. 不只是网络请求,本地的耗时操作也需要加载,完成的时候记得关闭加载框。 你可能会说这有什么,挨个写好就行了。但是错综复杂的业务逻辑,迟早会埋藏 bug,但是解决它仅仅只是个习惯问题,不需要添加太多代码。 优雅实践 弹窗处理需要 context,自然的我们需要在 UI 层去弹窗(TODO: EP-009
This is 优雅实践实验室, a brand new site by lilua that's just getting started. Things will be up and running here shortly, but you can subscribe in the meantime if you'd like to stay up to date and receive emails when new content is published! 这里是优雅实践实验室,专注于提供优雅的软件开发设计技巧,