kyr*_*mie 9 typescript redux ngrx angular
背景:
团队正在使用 Angular 和用于状态管理的 @ngrx 库构建一个基于 REST 的大型 Web 应用程序。
我们希望将来自服务器的实体建模为 TypeScript 类。这些可能是:帐户、用户等
这实现了:
fullName不确定性在于时候,应用程序的时间表时,初始化模式,电话:new Account(accountResponse)。
传统逻辑建议尽早执行此操作,在服务中与检索帐户的逻辑(无论是从缓存、服务器响应等)一起使用。
this.apiService.fetch(AccountService.URL)
.map(accounts => accounts.map((a: AccountResponse) => new Account(a)));
Run Code Online (Sandbox Code Playgroud)
此方法由 ngrx 效果调用,然后在成功响应之后,Reducer 将 Account 对象添加到存储中。
然而,这是有效的...... ngrx / redux“最佳 实践”指出,为了便于序列化以及其他原因,应该只将普通对象和原语保存在商店中。
为了遵守这个建议,初始化 Account 对象必须在更远的地方进行。在单个组件中,在状态选择器中,或者通常在使用帐户的任何地方。
这对我来说没有意义,因为原始帐户响应对象是在应用程序中传递的,这在某种程度上违背了首先将它们包装在模型中的意义。
该应用程序在结构上类似于@ngrx/example book 应用程序,鉴于其简单性,它不会将服务器响应包装在模型对象中。
问题:
将初始化的类保留在商店中的不利影响是什么(除了可序列化)?
如果只将普通对象保存在商店中,那么在通过应用程序的数据流中,模型class最适合初始化的位置是什么?
| 归档时间: |
|
| 查看次数: |
1299 次 |
| 最近记录: |