react native 在 2024 年还能打吗?感觉跨平台一致性不如 h5 和 flutter - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
lstz
V2EX    程序员

react native 在 2024 年还能打吗?感觉跨平台一致性不如 h5 和 flutter

  lstz 2024-09-10 11:52:15 +08:00 via Android 4806 次点击
这是一个创建于 398 天前的主题,其中的信息可能已经有所发展或是发生改变。

感觉写出来有些逻辑在安卓可以但是 ios 有问题,反之亦然,想找一个完全一致性的跨平台方案,flutter 可以完美做到吗

25 条回复    2024-11-29 22:47:17 +08:00
minami
    1
minami  
   2024-09-10 12:13:16 +08:00 via Android   33
跨平台就是在吃屎,框架多吃点你就少吃点,框架少吃点你就多吃点,框架说有些屎实在咽不下,你就要含着泪咽下去,要是你也咽不下去,就要混在饭里端给用户了
faimin
    2
faimin  
   2024-09-10 12:46:39 +08:00
个人觉得跨端框架大同小异,坑都不少,选择自己熟悉的就好。所谓的高性能都是噱头,再高也比不过 native 。不少大厂在跟了一波 flutter 的热度后又用回 react native 了
murmur
    3
murmur  
   2024-09-10 12:54:48 +08:00
之前我们尝试了一波迁移 rn ,后来放弃了,改成 capacitor 了,还是 h5 适合我们

rn 的样式问题老生常谈了,跟原生 css 比,除了像 css 也没啥区别了

还有新架构年底才正式适配,那么一大坨 c++代码生怕啥时候编译就出问题
duanxianze
    4
duanxianze  
   2024-09-10 13:19:32 +08:00
赞同一楼,完全一致性的跨平台方案不存在,假如纯原生开发工作量是 1+1+1 等于 3 ,跨平台顶多减少到 2 ,部分业务能少到 1.5 就不错了
hefish
    5
hefish  
   2024-09-10 13:24:34 +08:00
不能打了,不如 h5 和 flutter 了。。。flutter 肯定是不能完美做到的。需要等待一个时机。。。
iOCZS
    6
iOCZS  
   2024-09-10 13:43:57 +08:00
RN 本来就不是为了一致啊,很多用的平台 UI 。。。。
laters
    7
laters  
   2024-09-10 13:47:28 +08:00
无脑 flutter
laters
    8
laters  
   2024-09-10 13:47:45 +08:00
不如 h5 和 flutter
ynxh
    9
ynxh  
   2024-09-10 14:01:16 +08:00
无脑 flutter
jlak
    10
jlak  
   2024-09-10 15:17:36 +08:00 via iPhone
我选择 React Native ,会写 React 上手贼快
很多钩子库还通用
zy0829
    11
zy0829  
   2024-09-10 15:25:52 +08:00
这个问题看了 n 个人发 能获得 n 个不同的意见,哈哈哈 真是个困难的抉择
shadowyue
    12
shadowyue  
   2024-09-10 15:29:38 +08:00
来个始皇帝统一下基础规范行不行。
各个平台都搞一套百分之八十都差不多的东西,完全就是浪费。
okakuyang
    13
okakuyang  
   2024-09-10 15:34:27 +08:00
这几个方案针对的都不是一个东西,RN 是强调开发速度,让有 react 经验的程序员快速上手 App 开发,减少原生开发的前置学习时间和成本。同时提供一个还不错的跨端性能。
dudubaba
    14
dudubaba  
   2024-09-10 16:16:35 +08:00
要根据你项目选方案啊,如果是公司体量大且是购物和社交这种注重用户体验的就原生 > flutter > rn ,否则就选生态好的比如 rn 、h5 套壳,迭代成本和维护成本也得考虑进去。
liyafe1997
    15
liyafe1997  
   2024-09-10 16:23:42 +08:00
我们现在直接只用 Web(React, 当然也可以 vue 等),然后用 capacitorjs 来打包原生。这个可以实现 iOS/Android 的 Native bridge ,可以在 Javascript 里面调用原生代码。
其实我们主要就是用个原生 push ,capacitorjs 已经封装好了,能一键接入 FCM 和 iOS 的 APNs
RightHand
    16
RightHand  
   2024-09-10 16:28:48 +08:00 via Android
现在阶段,小程序的 uniapp ,app 用 flutter 。其他成本太高
yb2313
    17
yb2313  
   2024-09-10 16:41:42 +08:00
@minami 豪赤 , 爱吃
meteor957
    18
meteor957  
   2024-09-10 16:58:57 +08:00
rn 最近版本变化挺大
R4rvZ6agNVWr56V0
    19
R4rvZ6agNVWr56V0  
   2024-09-10 21:59:33 +08:00
没有完美的跨平台方案。
zhengfan2016
    20
zhengfan2016  
   2024-09-11 10:26:41 +08:00
反正我挺赞同 @murmur 之前帖子的观点,flutter 写 ui 语法太初生了。

前端的你想像一下像 vue 完全不用 template 只用 h 函数一层层嵌套的 ui ,上千行的 ui 代码你看得来吗,尤其是有些不爱拆组件化的程序员,改这种公司的代码真的得吐血。

然后状态管理库也是 react 玩剩的类 redux ,rn 的其实你用 tailwindcss 的话极少出现 ui 不一致的问题。最多也就安卓和 ios 的 rn api 不一致问题,比如 rn 的 alert ios 能用安卓不行。

rn 最大的问题是国内生态不行,很多国内 flutter 有的 sdk rn 没有,需要 rn 开发者自己写,这就要求 rn 开发者一个人至少会 swift ,kotlin ,js 三门语言并熟练,离谱点甚至 oc 和 java 都要会,然后薪资甚至不如只会熟练一门语言的 java 和 golang 后端
minami
    21
minami  
   2024-09-11 13:58:25 +08:00
@yb2313 背靠前端你就偷着乐吧,写跨平台 c++的天天粪池蝶泳
yrj
    22
yrj  
   2024-09-11 16:57:36 +08:00
我悄悄的提一嘴 uniapp 不会挨骂吧
murmur
    23
murmur  
   2024-09-12 13:27:14 +08:00
@yrj uniapp 是做那种小项目和办公 app 的好东西
murmur
    24
murmur  
   2024-09-12 13:27:42 +08:00
uniapp 其实最大问题是云打包,各种跟云绑定,现在 gov 大企业要求本地全部源码,直接一票否决了
xmsz
    25
xmsz  
   317 天前
我也在找
用过 RN ,说实话没啥大问题,最低选择
用过 Flutter, 不写界面的时候很爽,要写的时候噩梦,而且不是 js ,现在也好像被抛弃了,建议放弃

如果只是小程序的话,那选择太多了,taro ,raxjs 都可以,但是如果要想有高性能,还是只能原生写,如果是简单项目建议原生,多人协作用 taro ,至少开发速度不会变慢,性能问题找其他方式解决
uniapp 这种就是给待退休或者不专业程序员用的,不建议普通人用,没任何好处,坏处特别多,没办法还是得照顾国内很大一批跟不上时代的程序员

capacitorjs 的话,我先去踩踩坑
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5520 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 26ms UTC 07:50 PVG 15:50 LAX 00:50 JFK 03:50
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