在开始之前,此链接可能很有用:HMR 的目的是什么?.
我在大型项目管理/概念方面没有丰富的经验。我还很年轻,有一个漂亮的胡子。所以我在这里,寻求建议。
种子
我正在寻找并思考这个 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
在示例中使用 like 是个好主意。这迫使我们在我们的组件中使用一个可能很大的对象。这可能很烦人。你同意吗 ?这可能是大型应用程序的问题吗?(我要开发一个大型应用程序)。
它可能什么都不是,因为我只需要存储localStorage
我希望 HMR 跟踪的数据。那为什么不呢。
数据存储
说到存储,我也使用 @ngrx/store 作为 Redux 的实现。这似乎是一个非常好的主意,因为 state 可以是 my localStorage
. 当应用程序更新时,我只需要为我的状态补充水分,它就可以工作了。hmr 不会跟踪组件中的数据,只会跟踪状态。
听起来很棒。但这是个好主意吗?我试图找到一个连接器来处理@ngrx/store 和 hmr 之间的通信。 胜利!但这个包似乎已经过时了。
我可以自己做,但这是个好主意吗?Angular 的服务将使用 reducer,我可以找到更新 hmr 状态的钩子。
我认为 @ngrx/store 和 hmr 很受 Angular 开发人员的欢迎。这两种技术似乎很合适,但我在这里找不到很多资源。所以我想肯定有一个我现在看不到的问题。
我写所有这些都是为了向您询问有关您对这些技术/问题的体验的建议。
您认为结合这些技术有什么弊端吗?我正在试验,但我无法考虑所有情况。这就是为什么我需要你的帮助。
概括
- HMR 准备好“生产”了吗?
- 是否可以在@ngrx/store 中移动大量信息(例如'此复选框已选中'、'此输入的当前值是
foobar
'......) - 最重要的是:这些技术适合吗?
这些问题让我想起了https://github.com/CodeSequence/ngrx-store-hmr/issues/2。