通过离子中的所有页面同步对象的最佳方式?

Best way of synchronizing objects trough all pages in ionic?

我有 posts 显示在我的应用程序的主页上,我从服务器检索它们作为 JSON 对象。我有一个 post class 并为我得到的每个 post 创建一个实例。我将这些实例放入一个数组中,并在主页中循环遍历它们。但是当用户在不同的页面更新或添加 post 时,问题就开始了。

我想在用户返回主页时显示 post 的更新版本或新的 post。到目前为止,我是通过事件订阅来完成的,但是当您有太多要更新的内容并且更新可能发生在超过 1 个页面时,它真的开始变得复杂起来。

此外,订阅代码需要在任何事件发生之前运行,我需要将订阅代码放入相关页面,以便在事件发生时更改视图。但是,当用户没有访问我订阅事件的页面但做了一些更改以便发布事件时,情况又如何呢?事件的回调函数不起作用,因为我什至无法订阅它。

那么,在ionic v3中,有没有更好的同步所有必要页面数据的方法?

如果你正在寻找简单的东西,我建议只写 statefull service


@injectable()
export class StateService {
  public stateChange$ = new Subject();
  private state: any = {};

  public setState(state: any) {
     this.state = state;
     this.stateChange.next(state);
  }

}

然后在组件中获取状态并订阅它的任何更改:

class ComponentX {
  constructor(private state: StateService) {
    this.state = state.state;
    this.state.state.subscribe(newState => {
      this.state = newState;
    }
  } 
}

它的可扩展性不是很好,但速度很快,而且您无需下载任何新库。