React 或者 Vue 里的 UI 框架里的组件,怎么剥离成 jQuery 版?或者说脱离 react 使用。

2021-05-04 17:51:14 +08:00
 Jiajin

v 友们好,是这样,有几个 ant design 组件,要用到老项目里,懒得重新造轮子了,想直接复用 react 里的组件,怎么剥离出来形成一个 jQuery 组件?有类似经历的大佬提供下思路减少咱们底层码农搬砖时间吗?先谢过了。

1462 次点击
所在节点    问与答
9 条回复
learningman
2021-05-04 17:54:52 +08:00
你都开始想这种思路了,我告诉你应该怎么办。
弄个 div,这个 div 上挂一个 instance,这个 instance 的全部内容就是你要的那个组件
Jiajin
2021-05-04 18:01:33 +08:00
@learningman 开发的时候一定要引入 react js 吗?我意思其实是有没有类似的工具或者库,可以把 react component 转换成 jQuery 的插件,就包含一个 js 文件和一个 css 文件。老项目它都是一个一个页面,来引入的一个一个资源文件的,汗
learningman
2021-05-04 18:48:34 +08:00
@Jiajin jquery 操作的是真实 dom,react vue 操作的是虚拟 dom,你觉得这玩意儿要做出来多麻烦,用户有多少。。。
noe132
2021-05-04 18:57:58 +08:00
你这个问题相当于,我有一个发动机是烧油的,能不能用什么工具转换一下,变成用电的?

react 和 jquey 的区别相当于你是烧油还是烧电。重新设计一个发动机用电当然可以,但是你想把原来的发东西转换一下那当然不可能,2 个东西原理都不同。
iseki
2021-05-04 19:05:08 +08:00
你要就是想糊,不在乎性能和安全性,那也没事,你看 react 和 Vue,都有给 hello world 用的单文件 js 依赖,就是性能会有问题,而且默认应该都是开发模式,代码没有混淆和压缩
Mutoo
2021-05-04 19:14:36 +08:00
没法剥离,但是要复用、混用是可以的。基本上就是把 React 的组件编译成 umd 模块导出到 window 。然后在 jQuery 的生命周期调用 ReactDOM 直接 render() 到 container 上。需要更新 props 的时候用 ReactDOM.hydrate() 覆盖原 DOM 即可。React 17 把事件代理从 body 移到 container 上了,问题不大。
Jiajin
2021-05-04 21:05:53 +08:00
@iseki 哈哈,虽然我想糊弄一下,但是太显眼也不行
Jiajin
2021-05-04 21:07:19 +08:00
@Mutoo 看来只能用 jQuery 重新实现下了,老项目,难顶
Jiajin
2021-05-04 21:19:03 +08:00
@learningman 开一开前端的倒车,哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/774878

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX