这两天玩了玩React Native,感觉不错,谁用的久,这东西坑多么?

tinyfool 发布于 2018年01月28日
无人欣赏。

目前我还遇到太多坑……

共23条回复
qiezi 回复于 2018年01月29日

总体来说,iOS上很好,Android 上挺多小问题,简单列几点,没什么条理。

优点: 1. 两个平台样式一致性不错,界面开发省力很多 2. 开发很快,特别是界面,live reload和hot reloading都很好,做像素级UI还原很方便也很快 3. 比 cordova/ionic 之类 hybrid 性能好、更容易整合原生界面 4. 本论坛提倡移民,硅谷用它的应该不少

缺点: 1. 长期稳定维护的组件偏少 2. 包管理和cordova相比太原始 3. Android平台性能不好,红米2以前开发时JS只能4-6帧,现在好很多。但是timer杀伤力很大,不能用长时间的timer,我有个界面2个timer,一个100ms,一个1分钟,界面就卡死了(大概能猜到为啥这么差了,实现上很大缺陷)。用了一个react-native-background-timer库先解决了,体验上还是不够好。 4. 需要做background fetch、推送content-available之类处理的,在JS层限制很多,只适合退到后台还没被杀死的情况,还是需要在native处理 5. Android 平台的 Activity 在 React Native 没有对应的东西,有人封装过但天然不能很好配合,在 iOS 上好点。但几个 Native 来实现的 Navigator 都慢慢停滞了。而用 React Native 这套东西来实现的,某些情况下性能差点,和原生体验也有差异,只能说勉强能接受,如果团队在UI和交互上有自己特点,也能掩盖一下。

总体来说: 1. 个人非常推荐使用,特别适合快速把创意变成产品,大部分时候足够用,少数时候需要自己想办法 2. 各种开源组件库实现一般,熟练点的话很多库用的难受就自己做一个,反而少了很多折腾,比如 https://github.com/kirankalyan5/react-native-segmented-control-tab 这个库,跨平台的 Segmented Control,代码写成屎了,不同的人贡献代码,越改越乱,样式BUG成堆,但是没有另外的库做这个。我自己今天花半小时按他的属性接口写了一个,就可以覆盖主要功能了。 3. React 比 Angular 这套易用多了,state 管理我从没遇到什么意外情况,我用 Ionic 搞了一下,Angular 差多了。 4. 有个库能让 react native 使用 cordova 的组件,我还没测试,如果能用应该多了不少资源,cordova 那种原生库正好兼容这种场景。

先写这么多杂的吧。

qiezi 回复于 2018年01月29日

为啥格式成这样了

qiezi 回复于 2018年01月29日

@tinyfool 你遇到的都是啥问题?

qiezi 回复于 2018年01月29日

我有个项目,可能因为性能原因只能换成 react-native-navigator 或类似的,目前用 react-navigation,在红米2上面几乎无法忍受,上面的 timer是原因之一,之前点个 tab 要8-10秒切过来,换成 background-timer以后,大概半秒,感觉还是很不爽,原生的流畅太多。

tinyfool 回复于 2018年01月29日

3楼 @qiezi 我还没有遇到啥大问题

gaodeng 回复于 2018年01月29日

之前尝试RN 的时候做了个 Readhub 客户端练手。 现在正在用 RN 做一个播客 App . 碰到不少小问题,有 RN 本身的也有第三方库的,好在都是开源的,大部分都能找到解决方案。 alt text

kergee 回复于 2018年01月29日

ionic怎么样呢?

tinyfool 回复于 2018年01月29日

7楼 @kergee 我刚才试验了一下,感觉更接近于web,而不是native的体验

alber1986 回复于 2018年05月22日

我也在学,下的这套视频教程学 http://www.sucaihuo.com/video/232.html

tinyfool 回复于 2018年05月29日

9楼 @alber1986 后来我感觉坑还是有点多

nyng 回复于 2018年06月02日

准备去学一下google的flutter。

alber1986 回复于 2018年07月30日

确实有点难啊

jokester 回复于 2018年08月02日 | 更新于 2019年05月14日

在移动的跨平台方案中算坑少的 (可能只多于标准移动浏览器)

wubantu 回复于 2018年08月03日

11楼 @nyng 为什么不是anbularjs?

wubantu 回复于 2018年08月03日

1楼 @qiezi 你现在还是倾向于做原生安卓开发么?

建极绥猷 回复于 2018年08月08日

为啥不用flutter

gaodeng 回复于 2018年08月21日

16楼 @建极绥猷 flutter 出来的时间比较短,轮子不够多呀还。

tinyfool 回复于 2018年08月31日

17楼 @gaodeng 我现在觉得也是够麻烦,还不如直接原生呢

rebel_coder 回复于 2018年09月01日

昨天,我们项目组推翻了前端一季度的工作成果。主要原因是项目经理将RN定位成JS的MFC。。结果就爆炸了。

ukyozq 回复于 2018年12月25日

mark一下.

xzchsia 回复于 2018年12月26日

现在好像flutter火起来了,1.0正式版本发布了,看到好多大公司都开始投入了,连黑马都开了这个的培训了。

whoami 回复于 2019年05月13日

填坑就是进步的过程

twohappy 回复于 2019年05月14日

生产用,坑有点多。

本帖有23个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。

登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]