将事件从 jQuery 插件转发到 React 组件?
Forward events from a jQuery plugin to a React component?
假设我有一个主要用 React 编写的项目,我想添加一个 dropdown from Semantic UI。是否有可能以某种方式互操作它们?我的意思是应该有一个 React 组件在 componentDidMount
上调用 $('.ui.dropdown').dropdown()
然后以某种方式将 jQuery 事件转发给 React,从而保持状态同步。那可能吗?我知道它可能会导致性能问题,但如果没有与现有 jQuery 插件做同样事情的 React 组件,它仍然可能有用。
没有银弹 afaik,jQuery "plugins" 倾向于做很多 DOM 操作,这些操作不能很好地与 React 的虚拟 DOM 比较。
一些插件也会在它自己的元素之外进行 DOM 操作,f.ex 模态将节点附加到 document.body 或其他地方。
如果您对该插件及其功能有一点了解,您也许可以手动创建这样一个组件 "bridge",它还可以侦听 jQuery 事件并调用组件生命周期方法,但我认为您必须为每个插件手动执行此操作。
假设我有一个主要用 React 编写的项目,我想添加一个 dropdown from Semantic UI。是否有可能以某种方式互操作它们?我的意思是应该有一个 React 组件在 componentDidMount
上调用 $('.ui.dropdown').dropdown()
然后以某种方式将 jQuery 事件转发给 React,从而保持状态同步。那可能吗?我知道它可能会导致性能问题,但如果没有与现有 jQuery 插件做同样事情的 React 组件,它仍然可能有用。
没有银弹 afaik,jQuery "plugins" 倾向于做很多 DOM 操作,这些操作不能很好地与 React 的虚拟 DOM 比较。
一些插件也会在它自己的元素之外进行 DOM 操作,f.ex 模态将节点附加到 document.body 或其他地方。
如果您对该插件及其功能有一点了解,您也许可以手动创建这样一个组件 "bridge",它还可以侦听 jQuery 事件并调用组件生命周期方法,但我认为您必须为每个插件手动执行此操作。