Jquery 将HTML/CSS/JS主题应用于React应用程序的正确方法

Jquery 将HTML/CSS/JS主题应用于React应用程序的正确方法,jquery,reactjs,semantic-ui,magnific-popup,mmenu,Jquery,Reactjs,Semantic Ui,Magnific Popup,Mmenu,我一直在尝试将我在themeforest.net上购买的模板应用于我的React web应用程序。将模板的HTML/CSS部分转换为React组件相对容易,但是,我发现让jQuery部分工作起来很有挑战性 该模板使用了多个jQuery插件,如mmenu、放大弹出窗口和select。示例index.html在body标记末尾附近包含一个custom.js。通过浏览这个custom.js(超过1000行代码),我发现它基本上是使用jQuery选择器选择某个DOM节点,然后对所选节点应用jQuery插

我一直在尝试将我在themeforest.net上购买的模板应用于我的React web应用程序。将模板的HTML/CSS部分转换为React组件相对容易,但是,我发现让jQuery部分工作起来很有挑战性

该模板使用了多个jQuery插件,如mmenu、放大弹出窗口和select。示例index.html在body标记末尾附近包含一个custom.js。通过浏览这个custom.js(超过1000行代码),我发现它基本上是使用jQuery选择器选择某个DOM节点,然后对所选节点应用jQuery插件函数或额外的CSS类。对我来说,这个custom.js是一个厨房水槽

这在静态演示HTML页面中效果很好,因为custom.js加载到HTML页面的末尾,此时会显示所有节点,并为选择器选择做好准备

但是,作为一个单页应用程序,React应用程序可以动态更新DOM元素,而无需刷新页面。我发现,在一些地方,jQuery插件在更改路由或更新道具后会失去对DOM节点的控制

我能想到的一种优雅但较慢的方法是用功能上等价的React组件替换jQuery插件

另一种解决方案是,假设在发生路由更改或组件内容更新时,粗暴地强制再次执行kitchen sink custom.js。但我的直觉告诉我我不想去那里

如果以前做过这件事的人能透露一些情况,我将不胜感激。目前,我习惯于设计我的应用程序

我一直在尝试应用的主题是最前面的主题


PS:我读过,但没有找到一个快速的解决方案。

在转换HTML主题以做出反应时,这是一个棘手的部分。如果您使用jquery操作DOM,那么您就忽略了react的核心原则。我经历过几次同样的情况。我尝试过你提到的custom.js方法。根据我的经验,这是不值得的,你会遇到很多麻烦,最终写了一半的库。不要让我开始制作,你会想从头重写一切


我建议您使用等效的React组件。以后维护项目会容易得多。

嗨,克里斯。您是否已完成应用Listeo模板进行反应?我现在就要开始做这件事了,我想听听你对你的挑战是什么?谢谢..@Emre很抱歉没有听到这条评论,所以我听从了Shiva Pandey的建议,咬紧牙关,用React替换了几个组件