javascript - 与普通 JS 相比,React 在移动设备上的表现如何?

标签 javascript reactjs performance

我是一名初级开发人员,我正在考虑使用 React 制作一个 ionic 应用程序,但我担心虚拟 DOM 增加的内存使用量可能会损害低端设备上的用户体验。 React 会因为更少的渲染而工作得更好,还是因为需要更多的内存而变得更糟。我正在考虑制作的应用程序一般来说可能不会特别占用内存,但我不确定 React 会如何影响它。

最佳答案

VanillaJS 总是会更快。 React 在其库中包含了 VDOM、SyntheticEvent 和其他内容。通过添加内容来使用更多内存是合乎逻辑的。

但是,VDOM 允许您做的是更有效地进行更新。 VDOM是DOM在内存中的表示。把它想象成一棵由大量互相引用的 JS 对象组成的树,形成了 DOM 树。

现在,假设您正在更新其中一个组件状态。 React 使用 VDOM 来查找需要因状态更改而更新的组件。可能需要更新多个组件。对 VDOM 进行更新后,它将更改提交到实际 DOM。更新 DOM 的成本相当高,但在 VDOM 上操作却很便宜。这就是为什么所有更新在最终提交到实际 DOM 之前首先应用于 VDOM。如果您要使用 vanilla JS 实现相同的机制,可能需要相当长的时间。

如果低端设备上的性能是绝对优先考虑的,那么 Preact这与 React 非常相似,运行时大小仅为 3 kB(取决于您使用的内容)。您可能想要查看的另一个有趣的 UI 框架是 Svelte ,它将您的代码编译成无框架的普通 JS。

关于javascript - 与普通 JS 相比,React 在移动设备上的表现如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61255088/

相关文章:

java - 使用 Java 数据源是一种昂贵的考验吗?

android - Kotlin:回收站 View 断断续续

reactjs - 在 ReactJS 中屏蔽密码输入

javascript - 将作品放入 Postman 而不是 AXIOS

javascript - 为谷歌地图样式加载外部 JSON 文件会中断后续的 map 操作

javascript - 使用 PHP 和 JS 将 div = contenteditable 保存到 MySQL

javascript - 使用 Typescript 时如何修复 NextJS 中的 createPortal?

linux - 可以从 perf.data 文件生成 perf-stat 结果吗?

javascript - moment.js 模拟 local() 所以单元测试运行一致

javascript - Angular 1.5 嵌套 ng-repeat 关系 json