我想将mobx项目看起来像redux项目。将配置存储在一个文件中,将操作存储在另一个文件中,或者在第三个文件中存储其他逻辑和反应。
另外,最佳做法是什么?有一个像redux或更多的商店。我该怎么做(从一个类中取出@action并从另一个文件中调出它)。任何人都可以提供一些构建项目的好例子吗?
答案 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)