我想弄清楚如何構建我的應用程序,例如,我有一個模型用戶,一個通用的UserStore來跟蹤所有用戶加載到目前爲止,以及一些UI相關的商店,如FriendList,PendingFriendList, BlockedUserList,LikedUserList等:如何構建mobx
class User {
id;
@observable name;
@observable avatar;
// others functions and fields
}
class UserStore {
@observable users = [];
function resolve(id) { /*return by id*/}
function createOrUpdateUser(json) { /* add user to this.users */ }
}
class FriendStore {
@observable users = [];
hasNextPage = true;
currentPage = null;
function loadNextPage(page) {
api.loadFriends(page >= 0 ? page : this.currentPage + 1).then(users => {
users.forEach(user => {
this.users.push(UserStore.createOrUpdateUser(user))
})
})
}
}
class PendingFriendUsers {
@observable users = [];
@observable query = null;
hasNextPage = true;
currentPage = null;
function loadNextPage(page) {
// more or less like FriendStore
}
}
class BlockedUserStore {
// more or less like FriendStore
}
我的問題是:這是要走的路嗎?或者,還有更好的方法 ??
免責聲明:我是庫的作者https://github.com/rwieruch/react-mobx -soundcloud,但是對於真實世界的應用程序來說,最小化的樣板文件夾結構可以讓您更深入地瞭解應用程序的結構。 –
更大的真實世界MobX應用程序:https:// github。com/rwieruch/favesound-mobx –