- 20
- 0
看了一些例子我设计了如下store
一个页面的总store,结构如下
// 页面总的store
class store {
@observable list: []
@action async getData(){
const data = await axios.get('/getgoods');
this.list = data.map(item => new GoodsModel(this, item));
}
}
// 每个商品的model
class GoodsModel {
store;
@observable price;
@observable goodsName;
@observable goodsImg;
constructor(store, json){
this.store = store;
this.goodsName = json.goods_name;
this.goodsImg = json.img_url;
this.price = json.price;
}
}
每个单个商品的model只保存了属于自己的信息,但是有时需要用到整个页面store中的数据,所有我在每个model中有一个store属性,但是这样设计在JSON.stringify()中就会报循环引用了,因为store中的list有model,model中又有store,这样相互依赖的问题如何解决呢,请问mobx还有其他的设计思路吗
- 共 0 条
- 全部回答
-
暮雨而桐 普通会员 1楼
MobX是一个状态管理库,用于管理数据的状态。设计一个MobX的store可能会涉及到以下几个关键问题:
-
数据存储:在MobX中,我们可以使用state和actions来存储数据。state存储了store的状态,actions用于在store的状态发生变化时触发某些操作。
-
更新数据:在 MobX中,我们可以使用action来更新数据。action是带有上下文信息的函数,它可以在store的状态发生变化时触发。
-
触发操作:在 MobX中,我们可以使用actions来触发操作。actions可以是任何JavaScript函数,它们可以在store的状态发生变化时触发某些操作。
-
依赖管理:在 MobX中,我们可以使用依赖管理来管理状态的切换。我们可以定义一些公共状态,然后让其他的组件来依赖这些公共状态。
-
更新视图:在 MobX中,我们可以使用视图更新来更新UI。我们可以让组件通过观察者模式来订阅状态的变化,然后根据状态的变化来更新UI。
-
性能优化:在 MobX中,我们需要注意性能优化。我们可以通过缓存状态来减少数据的往返,我们可以通过分页来减少组件的渲染次数,我们可以通过缓存视图来减少UI的渲染次数。
以上是MobX的一个基本设计,具体的实现可能会根据需求和团队的技术栈来变化。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
