请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

所以为什么要命中batch update?

这里的setState主流程图我能理解
老师讲的也很清楚什么时候是异步(触发batch update)什么时候儿同步(不命中)

可问题是命中了batch update组件保存入dirtyComponents中有什么好处吗?

另外老师我在百度的时候儿搜到了一个这个 https://www.kancloud.cn/freya001/haoke/1692029

您看?这个是不是得制裁一下儿? 如果不是您授权的话

正在回答

2回答

可问题是命中了batch update组件保存入dirtyComponents中有什么好处吗? —— 这不是有没有好处的事儿。如果不这么做,这个功能就没法实现。


另外老师我在百度的时候儿搜到了一个这个 https://www.kancloud.cn/freya001/haoke/1692029 —— 我已反馈给专业反盗版的人员,感谢你的指出哈。

1 回复 有任何疑惑可以回复我~
  • 提问者 野源新之助 #1
    可能我还是没理解太到位 我捋一捋您听一听啊:
    
    您的意思是 这个命中batch update组件保存入dirtyComponents是React进行setState()更新 进一步说是vnode - patch() 更新的其中一环(或者说mechanism) 
    
    如果没有命中batch update的话 更新的机制就会不一样/更繁琐 (右侧分支:便利所有dirtyComponents, 调用updateComponent, 更新pending state)
    
    technically不能说是有好处 而是这是react更新机制的高效实现方法?
    
    (有可能没说对啊 没说对的地方儿就麻烦您指正一下儿)
    回复 有任何疑惑可以回复我~ 2020-10-20 11:09:49
  • 双越 回复 提问者 野源新之助 #2
    我还是没搞懂,你的问题在哪里?这就是一个组件更新流程,不同情况下走不同的分支。
    
    至于你说的“好处”以及“高效实现”,这些词,都是有对比的情况下才行,有对比,哪个更好哪个不好,讨论一下。
    而我们这个流程,没啥对比呀,只是两个分支而已。
    回复 有任何疑惑可以回复我~ 2020-10-20 19:25:47
  • 提问者 野源新之助 回复 双越 #3
    我大概明白了 我可能脑子里一直把这个batch update归类为优化的方式 但其实像您说的 这是流程 没啥对比 就是不同情况下的不同分支 得嘞感谢您的答疑解惑!!!!!!! sylsnb!!!
    回复 有任何疑惑可以回复我~ 2020-10-21 09:00:05
weixin_慕容4157932 2022-07-30 16:57:29

个人理解就是react做的一个优化,因为state更新会引起dom的更新,那如果复杂逻辑频繁对state更新那dom操作就会变得频繁,如果state做成异步的,在一次同步执行过程中,将所有的setState合并成一次去更新dom那就大大减少了dom操作的频率,进而减少diff计算的时间,做到性能优化。至于settimeout里面同步,因为外层包了一个异步,本身就不需要再内部设置一层异步了。 老师,如果我说的有问题请点出,纯属个人理解

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信