首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有角度的智能/哑组件与使用路由器切换视图相比,哪个更好,为什么?

有角度的智能/哑组件与使用路由器切换视图相比,哪个更好,为什么?
EN

Stack Overflow用户
提问于 2022-01-25 12:59:51
回答 2查看 210关注 0票数 1

例如,我有两个视图: List和Add/Edit。

是否应该有一个智能容器组件来处理从服务中获取数据的工作,并且前面已经提到视图是子/哑组件。

或者,是否使用路由器在视图之间切换并从每个单独的视图组件中获取服务数据?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-25 13:26:25

我建议对此使用角度路由。特别是因为它具有一些方便的优点:

当用户重新加载页面时,

  • 会保持相同的视图,而不需要在会话中存储状态的一部分。这也使用户能够更好地复制链接并将其发送给其他人或书签,更好地显示application.
  • It的某些视图。对于一个只有两个视图的小型应用程序来说,这可能没有什么区别,但对于更大的应用程序,扩展路由树要方便得多,而不是有巨大的开关--大小写语句来决定显示哪个视图。
  • 内置了一些特性,比如RouterLink指令,可以轻松地导航到路由。使用路由的
  • 使您能够使用所有方便的东西,比如警卫、解析器等等。不使用角路由器意味着,如果将来需要,就需要在on上实现这些行为。如果应用程序增长,则使用
  • 可以延迟加载子模块。

这些要点中的大多数特别适用于中到大型应用程序,而对于非常小的应用程序则不那么重要。因此,如果您确实只有两个视图,并且没有计划扩展您的应用程序,那么它可能不会产生很大的影响。但是对于一个可能正在增长的应用程序,我会选择路由。

票数 2
EN

Stack Overflow用户

发布于 2022-01-25 13:15:00

我不确定我是否正确地理解了这一点,但让我们将先前的请求、数据、存储操作等称为状态。我会把这个状态保存在一个单身服务中。当用户在视图中执行某些操作时,将先前的状态存储在服务中,并不断覆盖该状态。因此,当用户离开并返回到组件时,它的状态将从服务中获取(如果需要的话)--如果您愿意的话,就是缓存。一种方法可以是设置操作数据,并通过OnInit从服务获取状态。

代码语言:javascript
复制
import { Injectable } from '@angular/core';

@Injectable({
 providedIn: 'root'
})
export class SomeService {
 _state;

 get state() {
  return this._state;
 }

 set state(data) {
  this._state = data
 }
}
代码语言:javascript
复制
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

如果您有“智能容器”系统,您仍然需要将状态存储在某个地方,否则,如果组件被破坏,状态也会被破坏。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70849050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档