首页 > 解决方案 > 与 vanilla JS 相比,React 在移动设备上的表现如何?

问题描述

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

标签: javascriptreactjsperformance

解决方案


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,它将您的代码编译为无框架的 vanilla JS。


推荐阅读