Max*_*ski 8 javascript reactjs redux mobx
我正在试图弄清楚如何构建我的应用程序,例如,我有一个模型用户,一个通用的UserStore来跟踪所有用户加载到目前为止和一些UI相关的存储,如FriendList,PendingFriendList,BlockedUserList,LikedUserList等像那:
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
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:这是要走的路吗?或者,还有更好的方法 ??
Kul*_*ena 12
我曾与Mobx合作过一些项目并做出反应,因此我发现这种结构最适合我.
商店
楷模
服务
组件
您可能已经注意到,MobX没有规定如何构建存储,因此有许多方法可行.
但就我个人而言,我确实会以这种方式大致设置(类似于文档中建议的商店设置).它可能有点老式,但很容易跟随imho,它是一个可扩展的模型,明确分离关注点.在此示例repo中或在诸如mobx-reactor的相关项目中可以找到替代方法
小提示:在您的api回调使用中,transaction以便在通知任何观察者之前立即应用所有更改.
| 归档时间: |
|
| 查看次数: |
4570 次 |
| 最近记录: |