我看过很多文章,人们不推荐在 React 中使用 jQuery。
有时我觉得我们可以使用它们非常快速地进行一些操作。一些开发人员在他们的代码库中根本不包含 jQuery,但他们使用了许多内部可能使用 jQuery 的 npm module。
jQuery Dom 不是react差异算法的一部分,那么它们如何影响性能?
我看过很多文章,人们不推荐在 React 中使用 jQuery。
有时我觉得我们可以使用它们非常快速地进行一些操作。一些开发人员在他们的代码库中根本不包含 jQuery,但他们使用了许多内部可能使用 jQuery 的 npm module。
jQuery Dom 不是react差异算法的一部分,那么它们如何影响性能?
基本答案是这样的:
1) 对于动画,jQuery 会在浏览器内循环,并且不会利用 CSS3 转换。这会占用移动浏览器上的时钟周期(电池电量),这就是为什么在使用 jQuery 时会出现锯齿状、不流畅的动画。但更重要的是,React DOM 很特别,因为它在自己的内部(“虚拟 DOM”)中维护了您的 DOM 的完整副本。现在想一想:您使用 jQuery 更改 DOM,但 React 有一个旧的 DOM 副本。每次重新渲染时,它都会使用此 DOM 副本,因此您只是使其副本与真实 DOM 不同步。当你这样做时,非常糟糕的事情可能会发生在你身上,你基本上完全对 React 的核心(虚拟 DOM)嗤之以鼻。
如果你想在屏幕上做动画或移动东西,忘记你对 jQuery 的所有了解并学习 CSS3 过渡。然后用 React 的方式来做。
2) 对于所有非动画的东西,比如实用程序函数,尝试一个替代的(更小的)库,比如 lodash 或 underscore。他们有 map、each、pluck 等,可满足您所有的实用功能需求。
3) 我可以看到仅将 jQuery 用于一些非常专业的东西(例如油门和去抖动),但即使是那些现在也可能有替代品。