在Angular中导航多个页面时如何存储数据?



我在Angular中遇到了以下问题:如果我有两页A和B,各有一张表。然后我对表中的页A进行更改,然后导航到页b。现在我希望当我导航回页A时,更改仍然存在。在单击保存按钮之前,我不想将更改发送到数据库。用角来解这个最好的方法是什么?

如果您只想为这一个实例保留数据,那么一定要使用Service并将数据写入localstorage,以便在页面刷新时持续保存。

如果你正在开发一个SPA,那么我不确定为什么你需要它在页面刷新中持续存在,因为在组件之间移动实际上并不发送一个新的HTTP请求。您的状态应保存在您的服务中。

如果你发现自己需要在整个应用程序中管理状态,并且想要响应式地完成它,我建议你看看NGRX。

https://ngrx.io/

另一个可能没有那么多样板文件的选择是NGXS,它和NGRX做同样的事情。

https://www.ngxs.io/

如果您开发SPA应用程序,我不建议将localStorage用于您的任务,因为localStorage/sessionStorage是有限的,并且它是为其他目的而设计的-例如身份验证等。当然,如果你需要保存你的数据,比如cookie/JWT令牌等,即使在刷新页面后,你也可以使用localStorage

我建议使用Angular的服务来做这件事:请参见docs services/DI docs中的示例。一旦你将服务注册为单例服务,你就可以通过内置的DI(依赖注入)在组件中注入它,它会在a页呈现你的表。当然,你不仅可以在a页的组件中注入它,你甚至可以在B页注入它。

最新更新