ReactJS和jQuery是互斥的吗?

时间:2016-05-03 06:16:15

标签: javascript jquery reactjs

我是ReactJS的新手。 ReactJS似乎完全承担了渲染DOM节点的责任,并且不期望任何其他干扰甚至jQuery。它带来了许多方便的jQuery插件不能在React中使用的事实。其中一些插件具有相同的React组件,但仍然远远不够。是否有一种优雅的方式将这两种东西结合在一起?

3 个答案:

答案 0 :(得分:6)

快速回答是没有优雅的方法将它们组合并使您的应用无需使用丑陋的黑客即可正常工作。

与jQuery相比,ReactJS使用了一种根本不同的逻辑。你真的不想在使用ReactJS时搞乱DOM,这正是jQuery所做的。

但是如果您在同一页面上分别使用这两个库,有很多方法。您可以将ReactJS仅作为独立的自包含组件使用,不要将它们与jQuery混合使用(不要尝试以任何方式使用jQuery操作该组件,即使是监听事件也可能很棘手),而不是它们可以生活在不同的世界中很高兴,但这种限制你可以用React做什么。

我实际上在一个大型遗留项目上工作,我们慢慢地将组件从jQuery迁移到ReactJS,逐个组件,但这是一个缓慢的过程,如果ReactJS中的所有东西都可以更容易地完成。

如果你需要将它们捆绑在一起而不是我的答案仍然没有,你就不能优雅地做到这一点。

但这并不意味着它无法完成,有一些方法可以使它工作,但它会给你的应用程序带来意想不到的行为,你将不得不创建你真正不想在生产中做的变通方法

我建议你权衡你需要的东西,ReactJS或jQuery组件,如果你坚持下去,你会花更多的时间来开发。

答案 1 :(得分:2)

虽然我同意@ Ales的答案,但我想补充一点细微差别:

将jQuery和React混合用于DOM操作确实是一个非常糟糕的主意 jQuery有一些非常诱人的速记代码来操作DOM。当与反应混合时,这些是灾难的处方。

然而,jQuery也有其他东西,这与DOM操作无关。而那些jQuery部分实际上与反应混合得很好。

一个典型的例子是jQuery对ajax调用和JSON的处理。这些jQuery实际上与反应混合得很好。

答案 2 :(得分:0)

React结构通过数据流来像树一样的组件。如果组件的层次结构做得好,我认为您不需要实现JQuery。

在Github的React中已经有很多组件可以完成,它可以做很多惊人的事情。因此,如果您使用它们,您将不会失去ReactJS的数据通量感。