在Angular 2/4/6应用程序中管理状态的最佳实践

时间:2018-08-29 07:37:00

标签: angular angular-ui-router angular2-forms angular-directive

我对angular并不陌生,但是已经为我分配了一个项目,因此我已经开始工作,但是我面临与状态管理相关的情况,因此在通过wcf Restful服务进行身份验证之后,便向用户提供了令牌。所以我可以用这三种方法来解决这个问题。

  • 会话存储
  • 饼干
  • 本地存储

    上述方法的问题是-

  • 如果我使用会话状态,它将对浏览器中的新标签页无效,因此我无法检查令牌是否存在

  • 如果我使用的是本地存储,则当用户关闭浏览器并离开系统后再打开其他浏览器时,它将不起作用。安全威胁。

  • 如果我使用 cookies ,直到现在我一直工作良好,直到遇到一个奇怪的问题,我的子组件已通过 authguard 使用进行了身份验证> canActivateChild 功能。 但是当我在新标签页中粘贴了网址(以及子组件路径)时,两个页签在两个标签页中都相同,并且当我单击注销按钮时第二个标签中删除了Cookie。

注意:每次我单击“注销”按钮时都会调用该功能,但该功能在第二个选项卡中不起作用,并且从第一个选项卡起可以正常工作。

1 个答案:

答案 0 :(得分:1)

最好的方法是Ngrx,如果您使用的是Angular,以前是Redux。现在我们有了Ngrx,您还可以使用Ngrx设备工具作为chrome扩展程序,以查看应用程序加载时的状态和操作。.很棒。