像Redux这样的结构Mobx项目

时间:2017-10-19 22:52:10

标签: javascript reactjs mobx

我想将mobx项目看起来像redux项目。将配置存储在一个文件中,将操作存储在另一个文件中,或者在第三个文件中存储其他逻辑和反应。

另外,最佳做法是什么?有一个像redux或更多的商店。我该怎么做(从一个类中取出@action并从另一个文件中调出它)。任何人都可以提供一些构建项目的好例子吗?

1 个答案:

答案 0 :(得分:0)

装饰器(@)是将MobX与类一起使用的好方法,但您可以在不使用它的情况下使用MobX。

您可以使用action的函数版本

来构建您的应用程序

示例(JSBin

// state.js
useStrict(true);

const appState = observable({
  count: 0,
  firstName: 'Igor',
  lastName: 'Vuk',
  fullName: computed(function() {
    return `${this.firstName}-${this.lastName}`;
  })
});

// actions.js
const increment = action(function() {
  ++appState.count;
});

const changeLastName = action(function() {
  appState.lastName = 'Stravinskij';
});

// app.js
autorun(() => {
  console.log(`${appState.fullName} has been logged in for ${appState.count} seconds`);
});

setInterval(() => {
  increment();
}, 1000);

setTimeout(() => {
  changeLastName();
}, 3000)