【发布时间】:2017-03-29 12:19:49
【问题描述】:
在开始之前,此链接可能很有用:what is the purpose of HMR ?。
我在大型项目管理/概念方面没有丰富的经验。我还很年轻,有一个漂亮的胡子。所以我在这里,寻求建议。
种子
我正在查看和思考this seed of angular 2,我想知道使用 HMR 是否是开发大型应用程序的可行选择以及如何做到这一点。
这些只是想法,我只是想和你讨论一下以做出我的决定。我们都需要跨越我们的经验:-)
数据结构
基于这个例子:
@Component({
selector: 'home',
templateUrl: `
<form (ngSubmit)="submitState(localState.value)" autocomplete="off">
<input
[value]="localState.value"
(input)="localState.value = $event.target.value"
placeholder="Submit Local State to App State">
<button>Submit Value</button>
</form>
`
})
export class HomeComponent {
localState = { value: '' };
constructor(public appState: AppState, public title: Title) {}
onSubmit(value: string) {
this.appState.set('value', value);
this.localState.value = '';
}
}
通过使用 appState,可以动态地重新加载组件并注入数据。听起来很酷。但这是我的第一个问题:要启用此功能,组件必须在 appstate 树中占有一席之地,因此最好像示例中那样使用localState。 这迫使我们在组件中使用一个可能很大的对象。这可能很烦人。你同意吗?这会是大型应用程序的问题吗? (我要开发一个大型应用程序)。
这可能什么都不是,因为我只需将我希望 HMR 跟踪的数据存储在我的 localStorage 数据中。那为什么不呢。
数据存储
说到存储,我也使用@ngrx/store 作为 Redux 的实现。这似乎是一个非常好的主意,因为状态可以是我的localStorage。当应用程序更新时,我只需要为我的状态补充水分,它就可以工作了。 hmr不会跟踪组件中的数据,只会跟踪状态。
听起来不错。但这是个好主意吗?我试图找到一个连接器来处理@ngrx/store 和 hmr 之间的通信。 Victory ! 但是这个包好像已经过时了。
我可以自己做,但这是个好主意吗? Angular 的服务将使用 reducer,我可以找到更新 hmr 状态的钩子。
我认为 @ngrx/store 和 hmr 很受 Angular 开发人员的欢迎。这两种技术似乎很合适,但我在这里找不到很多资源。所以我想肯定有一个我现在看不到的问题。
我写所有这些都是为了向您询问有关您对这些技术/问题的体验的建议。
您认为结合这些技术有什么缺点吗?我正在试验,但我无法考虑所有情况。这就是为什么我需要你的帮助。
总结
- HMR 准备好“生产”了吗?
- 是否可以在@ngrx/store 中移动大量信息(例如'此复选框已选中'、'此输入的当前值为
foobar'...) - 最重要的是:这些技术是否适合?
这些问题让我想起了https://github.com/CodeSequence/ngrx-store-hmr/issues/2。
【问题讨论】:
-
您使用的堆栈太新,这就是为什么它们上的帖子如此之少,而许多帖子已经过时了,只有几个月的历史。希望你能得到一些好的答案,加油。
标签: angular typescript redux ngrx webpack-hmr