背景:
团队正在使用 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最适合初始化的位置是什么?
我对CSS3 skewX属性有实际用途.我用jQuery编写了一个简单的图像类似手风琴的脚本.作为设计的一部分,图像倾斜(已经,不在CSS中),为了使正确的区域可以点击,包含的div需要倾斜.
问题在于,在偏移div时,图像也会偏斜.倾斜偏斜的图像看起来不太好.
我尝试过的一个解决方案是将图像上的skewX值重置为0deg,但无济于事.在小提琴中,我没有包括手风琴,因为这不是解决方案所必需的.
<div><img src="https://www.google.com/intl/en_com/images/srpr/logo3w.png"></div>
Run Code Online (Sandbox Code Playgroud)
div {
-webkit-transform:skewX(200deg);
-moz-transform:skewX(200deg);
-o-transform:skewX(200deg);
-ms-transform:skewX(200deg);
transform:skewX(200deg);
border:1px solid red;
}
Run Code Online (Sandbox Code Playgroud)