角度2组件重用

时间:2016-10-20 04:54:39

标签: angular

对于角度2有点新,但我正在寻找一种方法来导航回一个组件,并在我离开它时找到它。

假设从用户列表导航到用户详细信息,然后导航回用户列表

  1. 没有组件从服务器请求用户。那是再次发送get请求。但是就像我之前导航的用户一样,这些用户将被填充
  2. 如果我滚动它将在我离开之前的确切位置
  3. 先谢谢你们

1 个答案:

答案 0 :(得分:1)

如果你需要在一个组件被销毁之后重新创建它,为了查看它在被销毁之前的确切方式,你需要存储它所需的状态。在您的情况下,这将是用户列表,以及他当时所处的位置。

要在角度应用程序中存储状态,最好的选择是使用Redux架构的ngrx / store实现。您需要做的是将所有内容存储在重新创建组件所需的ngrx / store中。

在组件的ngOnInit生命周期钩子中,您可以从商店中获取该数据,并使您的组件看起来像以前一样。这看起来有点像这样。

ngOnInit(): void {
    this.list$ = this.store.select((state: ApplicationState) => state.list);
    this.position$ = this.store.select((state: ApplicationState) => state.position);
}

Ngrx / store从商店中返回可以在模板中使用的observable,如下所示:

 <div *ngFor="let element of list$ | async">

有关redux reduxjs.org和github.com/ngrx/store

的更多信息