我有一个纯 html 的谷歌地图项目,现在维护有点复杂了,我应该怎么迁移到 React 这类框架中,求大佬出解决方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
dalovelanlan
V2EX    程序员

我有一个纯 html 的谷歌地图项目,现在维护有点复杂了,我应该怎么迁移到 React 这类框架中,求大佬出解决方案

< href="Javascript:" Onclick="upVoteTopic(1073953);" class="vote">
  •  
  •   dalovelanlan 2024-09-19 10:34:43 +08:00 3595 次点击
    这是一个创建于 389 天前的主题,其中的信息可能已经有所发展或是发生改变。

    迁移的主要目的是为了使用那些流行的组件库比如( ant design ),项目目前是 jq + layui 写的,需求越来越多,这俩写的有点吃力了,求一个解决方案

    21 条回复    2024-09-20 09:32:06 +08:00
    dalovelanlan
        1
    dalovelanlan  
    OP
       2024-09-19 10:36:35 +08:00
    目前觉得使用 Svelte 这个框架迁移起来比较方便点,但是不知道使用什么组件库
    DICK23
        2
    DICK23  
       2024-09-19 10:53:27 +08:00
    svelte 选择也不少啊,skeleton ui \ daisy ui ,如果熟悉 shadcn ui 这类,可以使用 melt ui
    tianhehechu
        3
    tianhehechu  
       2024-09-19 10:57:03 +08:00
    把页面代码发给 ChatGPT ,让它转写为 React ,然后自行在此基础上修改完善。
    dalovelanlan
        4
    dalovelanlan  
    OP
       2024-09-19 11:02:05 +08:00
    @tianhehechu 这个想过,但是现在开发的谷歌地图是用 js api 写的,如果换成 react 的话,是使用第三方组件库还搞的,还得在看第三方文档去写线路规划这些,到时候也要花不少时间
    dalovelanlan
        5
    dalovelanlan  
    OP
       2024-09-19 11:03:59 +08:00
    @DICK23 skeleton ui 这个看起来不错
    suuuch
        6
    suuuch  
       2024-09-19 11:06:27 +08:00
    感觉可以考虑下用模板引擎
    dalovelanlan
        7
    dalovelanlan  
    OP
       2024-09-19 11:08:51 +08:00
    @suuuch 模板引擎的话,UI 方便不想使用 layui 来写,这写起来比较麻烦,不知道有什么好用的 ui 库,比如表格渲染这些能比较方便点的,不然还要操作原生 dom 去添加数据这比较麻烦
    gogogo1203
        8
    gogogo1203  
       2024-09-19 11:11:55 +08:00
    ![Snipaste 2024-09-19 11-01-53]( https://i.ibb.co/H7h2rKy/Snipaste-2024-09-19-11-01-53.png) react ui 只推荐 tailwind + shadcn 包括逻辑 和 不错的设计
    gogogo1203
        9
    gogogo1203  
       2024-09-19 11:15:06 +08:00
    https://i.ibb.co/Q9Dc6JV/Snipaste-2024-09-19-11-01-53.png google 官方 也推荐 @vis.gl/react-google-maps 主流的功能都有, 就是要慢慢看官方的 doc 和 例子。
    dalovelanlan
        10
    dalovelanlan  
    OP
       2024-09-19 13:42:15 +08:00
    @gogogo1203 那就等于重新开发一遍了,主要是时间没那么多
    gogogo1203
        11
    gogogo1203  
       2024-09-19 14:20:16 +08:00
    @dalovelanlan 除非有利可图, 不然你折腾这个做什么。 弄明白一个 router 都够你喝一壶的了。
    echo0x000001
        12
    echo0x000001  
       2024-09-19 14:54:19 +08:00   2
    建议使用 vue 2 来重构,通过标签引入 script ,实现最小单元的 html 重构,等现有的 html dom 操作都从 jquery 切换为 vue 后,然后再使用 vue 脚手架做项目迁移,把 html 里的代码块封装成 vue SFC ,完成这一步,你的项目就是前后端分离的了,接着可以升级到 vue 3 版本,享受主流生态。想使用 react 的话,基本上只能重新开发了。
    shintendo
        13
    shintendo  
       2024-09-19 14:58:16 +08:00
    渐进式迁移是 vue 的强项
    dalovelanlan
        14
    dalovelanlan  
    OP
       2024-09-19 15:13:06 +08:00
    @gogogo1203 没办法,接手别人的项目,我也不想整,领导要求
    cuimc
        15
    cuimc  
       2024-09-19 15:37:23 +08:00
    @echo0x000001 这可能是成本最低的迁移方案了,我之前就是按照这个思路吧公司的前后端不分离的项目逐渐改成了 vue2 版本的前后端分离的项目。
    dalovelanlan
        16
    dalovelanlan  
    OP
       2024-09-19 15:41:33 +08:00
    @cuimc 关键问题是,现在用 html + js 开发的 google map ,如果迁移成框架的话,这之前开发的地图功能,就需要重新开发一遍了
    chf007
        17
    chf007  
       2024-09-19 15:46:02 +08:00
    你这不叫迁移,你这叫重构
    slert
        18
    slert  
       2024-09-19 16:06:09 +08:00
    花 500 在本站找人给你改
    cat
        19
    cat  
       2024-09-19 16:09:10 +08:00
    找我,我有兴趣
    undermoodzyx
        20
    undermoodzyx  
       2024-09-19 18:18:27 +08:00
    用 react ,渐进重构,配合 ai 重构代码
    ddch1997
        21
    ddch1997  
       2024-09-20 09:32:06 +08:00
    @dalovelanlan 以前实现的 js 部分迁移到 react 并不需要做太多逻辑改动,只需要在生命周期完成对应的初始化就行,其他调用也都维持着 js 的调用,react + 第三方 UI 库只是让你更方便的去写别的地方代码,核心 JS 部分就当纯粹的 js sdk 来用就好了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3324 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 11:26 PVG 19:26 LAX 04:26 JFK 07:26
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86