我最近将一个重磅页面移植到 React。我保持 html 几乎相同。主要区别在于,之前服务器渲染的 html 直接提供给浏览器,现在,react 重写通过服务器端 API 拉取 json 并使用 React 来管理 DOM。
我已经看到早期实现的堆快照高达55 MB。对于相同的数据,React.js 实现的堆快照大约为100+ MB(几乎是两倍)
我知道保存在内存中的 json 数据会导致消耗的内存有所增加。但是,当我检查堆快照时,我发现大约 60% 的保留大小是由于某些对象的保留路径包含deleteAllListeners > .... > unmountComponentAtNode。我试图了解这在减少使用的内存方面意味着什么。
此外,React 添加到 DOM的“data-reactid”属性是否会导致不可忽略的内存消耗增加?
这个问题有一些可能有帮助的更多细节。