看网上好多虚拟dom新旧树比较之后,对应更新到dom。
我想性能优化最关键的应该就是dom操作吧。
比如说原生写法,我修改table里面某一行的内容,肯定会想办法直接修改这一行甚至某个td,而不是整个表格替换。难道说vue,react会比这个还要快吗?
还有react会有好多更新state操作,放到队列里,最后一块更新dom。那这样的话,会不会更新数据量大的时候,某个时段会很卡?
看网上好多虚拟dom新旧树比较之后,对应更新到dom。
我想性能优化最关键的应该就是dom操作吧。
比如说原生写法,我修改table里面某一行的内容,肯定会想办法直接修改这一行甚至某个td,而不是整个表格替换。难道说vue,react会比这个还要快吗?
还有react会有好多更新state操作,放到队列里,最后一块更新dom。那这样的话,会不会更新数据量大的时候,某个时段会很卡?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
这题居然没人答么……那我扔块砖
前置建议可以直接看这个问题网上都说操作真实 DOM 慢,但测试结果却比 React 更快,为什么下尤大的回答(当然也可以看看其它人的)。
React倒是在blog里提过比原生快,但那是有一定条件的,不是所有操作都快,直观点打个比方就好像一个食堂,在一个人打饭的情况下,React大妈可以给这个人开门让他直接去后厨打,这根直接去后厨打(原生操作DOM)的结果是一样的;但是食堂里突然来了千八百人,有壮汉有妇孺,有AA制的有直接给现金的,那么统一排队挨个刷卡的效果就会比都挤到后厨的效率更高,这其实就是工程化设计。