例如,我有两个视图: List和Add/Edit。
是否应该有一个智能容器组件来处理从服务中获取数据的工作,并且前面已经提到视图是子/哑组件。
或者,是否使用路由器在视图之间切换并从每个单独的视图组件中获取服务数据?
发布于 2022-01-25 13:26:25
我建议对此使用角度路由。特别是因为它具有一些方便的优点:
当用户重新加载页面时,
。
这些要点中的大多数特别适用于中到大型应用程序,而对于非常小的应用程序则不那么重要。因此,如果您确实只有两个视图,并且没有计划扩展您的应用程序,那么它可能不会产生很大的影响。但是对于一个可能正在增长的应用程序,我会选择路由。
发布于 2022-01-25 13:15:00
我不确定我是否正确地理解了这一点,但让我们将先前的请求、数据、存储操作等称为状态。我会把这个状态保存在一个单身服务中。当用户在视图中执行某些操作时,将先前的状态存储在服务中,并不断覆盖该状态。因此,当用户离开并返回到组件时,它的状态将从服务中获取(如果需要的话)--如果您愿意的话,就是缓存。一种方法可以是设置操作数据,并通过OnInit从服务获取状态。
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class SomeService {
_state;
get state() {
return this._state;
}
set state(data) {
this._state = data
}
}export class StateComponent {
// inject state service to access set get methods
constructor(private service: StateService) {
this.service.state = { data: moredata }; // setting state
console.log(this.service.state); // getting state from anywhere
}又称国家管理。https://blog.logrocket.com/angular-state-management-made-simple-with-ngr
如果您有“智能容器”系统,您仍然需要将状态存储在某个地方,否则,如果组件被破坏,状态也会被破坏。
https://stackoverflow.com/questions/70849050
复制相似问题