mobx同步更新问题

2018-04-28  本文已影响105人  gzgogo

今天抽时间验证了一下mob的同步更新问题,感兴趣的朋友可以到github上下载代码: mobx-sync-test

最终验证的结论如下:

  1. 确实为同步更新,每改变一个observable变量,都会执行一个autorun
  2. React组件情况特殊,在组件的方法内单独更改每个observable变量时,一个函数内的所有更改只会触发组件的一次render

结合具体代码:
increaseincreaseInReact两个函数,都是单独设置user对象的每个字段,但是效果却截然不同,由React组件触发的方法(increaseInReact)只会触发一次render,由dom元素触发的方法(increase)却会触发5次render

结论(只是猜测)

react组件触发的方法应该是做了什么特殊处理,保证其一次事件循环内产生的
render做批量处理,目前只是猜测,有人知道原因还请指教。

由于并没有看react和mobx-react的源码,所以结论只是猜测,哪位大神了解细情还请指教。

上一篇 下一篇

猜你喜欢

热点阅读