为应用程序创建单个MobX商店的最佳方法是什么?

Tan*_*ché 10 reactjs react-native redux mobx mobx-react

我一直在使用MobX和Redux大约6个月.我发现在大多数应用程序中我更喜欢MobX的简单性.但是,我喜欢Redux的单店概念.我听到其他人评论他们用MobX创建了一个故事,我正试图确定最好的方法.目前,我创建了多个商店,然后将它们导入到单个商店中.

class UiStore {
  @observable uiData;

  constructor() {
    this.uiData = {}
  }

  @action updateUI = (data) => {
    this.uiData = {
      data: data
    };
  }
}

let uiStore = new UiStore();
export default uiStore;
Run Code Online (Sandbox Code Playgroud)
class Store {
  @observable currentUser;

  constructor() {
    this.auth = authStore;
    this.ui = uiStore;
  }

}

let store = new store();
export default store;
Run Code Online (Sandbox Code Playgroud)

在这里,我基本上创建了单独的商店,然后将它们合并到一个商店中,类似于redux减速器的工作原理.

还有其他/更好的方法吗?我想过可能会将一个商店导入到不同的文件中,并将一些方法和数据放在一个类上prototype.

Pet*_*etr 17

我现在使用MobX一年+我基本上也这样做:

1)我有一个通常命名为"master"或"parent"的商店 class Store {...}

2)然后我有一些小商店,保存在"主"商店.

3)我更喜欢在master的商店构造函数中构建子库.此外,我发现有时我的子商店必须从父商店观察一些数据,所以我传递this给子构造函数:

class UserStore {...}
class TodosStore {...}

class Store {
  constructor() {
    this.user = new UserStore(this);
    this.todos = new TodosStore(this);
  }
}
Run Code Online (Sandbox Code Playgroud)

Parent保留对子项的引用,每个子项都引用父项.