V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yantianqi
V2EX  ›  程序员

公司让我独自开发 app,我想用 react-native,大家有什么建议

  •  
  •   yantianqi · 2018-05-25 15:38:34 +08:00 · 21878 次点击
    这是一个创建于 2375 天前的主题,其中的信息可能已经有所发展或是发生改变。

    对 vue 比较熟练,react 稍微了解点

    公司让我独自开发 app,以前用过 apicloud 之类的,感觉没啥技术含量,想用 react-native

    react-native 今天刚看了看,目前还是迷迷糊糊状态。

    v 友有什么学习 react-native 的资料,或建议吗?

    第 1 条附言  ·  2018-05-25 17:52:29 +08:00
    以前学过一段时间的 react,基本的还是会,原生开发没接触过,react-native 今天刚看了看。

    本人前端一枚,在做 app 上目前还不知道应该怎么选型,独自一人做,目前公司,没有大神。

    看大部分说 react-native 很多坑,其实我选 react-native 的原因是,网上搜了搜说的都很火,然后因为是新东西,感觉也能从中学到很多东西。
    第 2 条附言  ·  2018-05-25 18:44:32 +08:00
    看完大家的讨论,RN 真的这么坑吗?这么火的东西这么坑。。。
    第 3 条附言  ·  2018-05-25 19:05:17 +08:00
    我有点想放弃 RN 了

    看了大家的意见
    1. cordova
    2. flutter
    3. meteor
    4. Nativescript-vue
    5. weex 我感觉这个更坑,不用考虑吧?
    85 条回复    2019-11-19 19:12:55 +08:00
    VDimos
        1
    VDimos  
       2018-05-25 15:40:52 +08:00 via Android   ❤️ 1
    vue 换到 rn,步子太大容易扯到蛋
    murmur
        2
    murmur  
       2018-05-25 15:41:38 +08:00
    你对 vue 比较熟练为什么不考虑 cordova+vue
    有性能要求么
    react native 上手还是有点难的 毕竟你要先学 react 然后还要适应 react 独有的坑 还有 rn 每个组件的坑
    开发 ios 你还要有 mac 机器 毕竟 rn 的坑不是在浏览器里仿真就能踩完的
    当然如果公司给了你足够的学习时间上 rn 是最好的选择
    wxsm
        3
    wxsm  
       2018-05-25 15:44:32 +08:00
    重点是“独自”,如果你没有 native 开发经验,则不建议使用 RN。建议使用 cordova
    liuzhedash
        4
    liuzhedash  
       2018-05-25 15:49:31 +08:00
    react native 需要有原生开发的经验,如果是没搞过原生的 app 开发,那么相当于同时学原生开发+react+react native,这个难度比较大。
    建议按 2L 思路走。
    linweijian
        5
    linweijian  
       2018-05-25 15:57:02 +08:00
    如果不会原生开发,不建议使用 react-native,当然如果开发的 APP 比较简单的话还是可以用的,如果比较复杂的,就不行了,必须要写原生模块才能解决
    kkopitehong
        6
    kkopitehong  
       2018-05-25 15:59:49 +08:00
    之前的项目用的 vue+cordova+webpack 最近的新项目也准备用 react-native

    用 cordova 在某些 低配手机上是真的卡
    FreshOldMan
        7
    FreshOldMan  
       2018-05-25 15:59:54 +08:00
    这是一个深坑
    murmur
        8
    murmur  
       2018-05-25 16:03:26 +08:00
    @kkopitehong cordova 在 ios 上必须上 wkwebview android 要>4.4 低于这个简直无解
    janxin
        9
    janxin  
       2018-05-25 16:04:44 +08:00
    你要不是前端开发我不推荐你用 RN,你要不是安卓开发那就另说
    nine99
        10
    nine99  
       2018-05-25 16:05:29 +08:00
    RN 的选择应该没错的。
    jiafaner
        11
    jiafaner  
       2018-05-25 16:05:39 +08:00
    使用 vue 开发,有没有好用的前端框架推荐?需要兼容 ios 和 android。
    v2410117
        12
    v2410117  
       2018-05-25 16:11:04 +08:00
    表示你用 rn 开发不懂原生的话,坑应该比较多,我原生看 rn 坑也不少!如果性能要求不高,要不直接套 webview 得了
    misaka20
        13
    misaka20  
       2018-05-25 16:12:17 +08:00
    RN 坑太多
    dong3580
        14
    dong3580  
       2018-05-25 16:13:13 +08:00
    业余独自写了一年的 rn,坑太多。。。,不少 issue 都要和 github 上面的童鞋一起解决,或者压根都是官方的 bug. rn 依赖库更新速度太快了,升级经常伴随着各种红。不过,rn 的选择没错!
    Marven
        15
    Marven  
       2018-05-25 16:36:48 +08:00
    对 vue 熟练,那用 weex 呀
    maxxxxx
        16
    maxxxxx  
       2018-05-25 16:49:05 +08:00
    @Marven 怕是早就凉了。。
    bullettrain1433
        17
    bullettrain1433  
       2018-05-25 16:51:12 +08:00
    codova 吧,rn 坑大
    maichael
        18
    maichael  
       2018-05-25 16:51:36 +08:00
    没有 native 开发经验不要独自用 React-Native,找死的行为。
    n37r06u3
        19
    n37r06u3  
       2018-05-25 16:54:49 +08:00
    ionicframework 也行吧
    dodo2012
        20
    dodo2012  
       2018-05-25 16:55:01 +08:00
    @Marven 心大用 weex, 我自己写的 weex 插件,官方更新两次后直接不能用了,现在文档还是一坨 x,实在不推荐。
    marcushbs
        21
    marcushbs  
       2018-05-25 17:02:30 +08:00
    业务内容呢,媒体播放 /编辑类这种 native 交互多的就算了,坑多且深。如果就是一个 feed 列表+detail 页的倒是可以上—— FlatList/SectionList 其实超过 1000 条之后性能也不太好
    tnt666666
        22
    tnt666666  
       2018-05-25 17:05:09 +08:00
    建议 flutter
    shiji
        23
    shiji  
       2018-05-25 17:11:41 +08:00 via Android
    我只是觉得 rn 的坑比较多,而且很多坑还处于有待发现的状态。
    ai277014717
        24
    ai277014717  
       2018-05-25 17:18:55 +08:00
    调研一下 api 够不够用 不然工作量加倍
    haozes
        25
    haozes  
       2018-05-25 17:21:11 +08:00
    我也感觉 RN 坑比较多,搞得好累
    tujin
        26
    tujin  
       2018-05-25 17:23:33 +08:00
    React 不熟悉,原生没搞过,不要独自搞 RN
    sobigfish
        27
    sobigfish  
       2018-05-25 17:27:04 +08:00
    @tnt666666 #22 flutter 现在是玩具, 你弄个支付 sdk 怎么整合?
    IamJ
        28
    IamJ  
       2018-05-25 17:27:24 +08:00 via Android
    😂天坑
    imwalson
        29
    imwalson  
       2018-05-25 17:40:43 +08:00 via Android
    熟悉 vue,可以试试 Nativescript-vue,虽然国内名气不大,但是国外社区挺活跃的,官方维护力度也不错,前提是查阅英文文档的能力、翻墙能力足够强
    cnbattle
        30
    cnbattle  
       2018-05-25 17:43:41 +08:00
    留名, 无 ios 和 android 经验,少量 web 前端,同有兴趣了解一种工具做 app
    whypool
        31
    whypool  
       2018-05-25 17:43:48 +08:00
    还是用 apicloud
    就套个 webview 壳子就行,别搞什么原生交互的骚操作
    其他都特么坑多,如果有硬件交互或者原生交互,用原生
    其他方案都是巨坑,天坑!!!
    circleee
        32
    circleee  
       2018-05-25 17:44:02 +08:00
    直接上,大不了 删库跑路

    开玩笑 ,感觉如果要求不是很着急额,用也没有什么问题吧。

    不敢用新的,永远也学不会的。
    yantianqi
        33
    yantianqi  
    OP
       2018-05-25 17:44:37 +08:00
    以前学过一段时间的 react,基本的还是会,原生开发没接触过,react-native 今天刚看了看。

    本人前端一枚,在做 app 上目前还不知道应该怎么选型,独自一人做,目前公司,没有大神。

    看大部分说 react-native 很多坑,其实我选 react-native 的原因是,网上搜了搜说的都很火,然后因为是新东西,感觉也能从中学到很多东西。
    winglight2016
        35
    winglight2016  
       2018-05-25 17:53:02 +08:00
    除非你有一两个月的学习时间,不然 H5+壳是最现实的选择
    defunct9
        36
    defunct9  
       2018-05-25 17:57:33 +08:00
    推荐 meteor
    weixiangzhe
        37
    weixiangzhe  
       2018-05-25 18:19:30 +08:00 via iPhone
    rn 可以试试 expo, 不然原生还是有大量东西搞的
    laven
        38
    laven  
       2018-05-25 18:22:38 +08:00
    试试 weex
    jevonszmx
        39
    jevonszmx  
       2018-05-25 18:31:34 +08:00
    rn 坑很深的,只适合在不重要的地方用用,你要是大量用,真的不如去学原生的。
    paranoiagu
        40
    paranoiagu  
       2018-05-25 18:49:15 +08:00 via Android
    正在跳坑
    rrfeng
        41
    rrfeng  
       2018-05-25 18:57:26 +08:00 via Android
    flutter 试试
    PhpBestRubbish
        42
    PhpBestRubbish  
       2018-05-25 18:57:34 +08:00
    weex
    jjianwen68
        43
    jjianwen68  
       2018-05-25 18:59:18 +08:00 via Android
    flutter?
    xiaojie668329
        44
    xiaojie668329  
       2018-05-25 20:00:16 +08:00 via iPhone   ❤️ 1
    看到大家说这么多坑,不知道学 rn 和直接现学 swift 哪个更快…
    uilvn
        45
    uilvn  
       2018-05-25 20:06:38 +08:00
    quasar 了解一下
    lsyAndroid
        46
    lsyAndroid  
       2018-05-25 20:48:27 +08:00 via Android
    能吃透就用,否则先想想
    WooYou
        47
    WooYou  
       2018-05-25 20:53:55 +08:00 via iPhone
    好奇 RN 有啥坑呢,现在用 RN 写的还挺舒服还没遇到啥坑
    kingcos
        48
    kingcos  
       2018-05-25 20:58:15 +08:00 via iPhone
    @xiaojie668329 别入坑不就行了…
    zv2
        49
    zv2  
       2018-05-25 21:19:02 +08:00
    swift 每年学一次,2333
    caola
        50
    caola  
       2018-05-25 21:22:27 +08:00
    光想有什么用,不试试怎么知道自己行不行
    MASAILA
        51
    MASAILA  
       2018-05-25 21:24:31 +08:00
    这个还要看项目需求吧,其实学原生挺容易的。。
    koalli
        52
    koalli  
       2018-05-25 21:30:45 +08:00
    ionic 了解一下
    newbieo0O
        53
    newbieo0O  
       2018-05-25 21:32:24 +08:00 via iPhone
    要么 webview,要么原生语言
    hugebug
        54
    hugebug  
       2018-05-25 21:51:16 +08:00 via iPhone
    FLutter 现在不是很成熟,用 RN 就挺好的,不过要对原生了解一些,已经开发两个应用了,支付地图推送都可以搞定
    momocraft
        55
    momocraft  
       2018-05-25 21:57:22 +08:00
    你列的几个选项坑未必少, rn 这么多年了坑多少踩平了点.
    Rorysky
        56
    Rorysky  
       2018-05-25 22:23:02 +08:00
    独自开发的话,技术栈并不是很重要。

    选个自己喜欢的
    SilentDepth
        57
    SilentDepth  
       2018-05-25 22:27:44 +08:00
    如果项目比较着急,Cordova Hybrid App 可能是最稳妥的方案。当然性能是否符合要求看你做的是什么。

    NativeScript 还不错,但 nativescript-vue 说实话是另一回事。很多功能用原生 NS 没什么问题,用 NS-Vue 就不一定好搞了。我目前的理解,NS-Vue 差在开发成熟度上,NS 官方说它还没有 bullet-proof 是真的。当然,如果业务不复杂,NS-Vue 没什么太大的问题。

    Weex 就有点尴尬了,理念很好,但成熟度上可能还不及 NS-Vue。

    移动端 Meteor 没试过,但不觉得跟 Cordova 比有什么明显的优势(对于移动端 App 开发体验而言)。

    Flutter 很有意思,但不适合着急的项目,一来这需要上手全新的技术栈,二来 Vue 的经验基本用不上。楼上有人说的社区整合(比如支付)方面也差一些( Flutter 目前似乎还谈不上社区)。

    总之,不论选择哪个方案,原生开发经验的有无会带来明显的差异。
    visonme
        58
    visonme  
       2018-05-25 22:35:00 +08:00
    app 主要处理什么业务呢?
    作为前端,在对 RN 不是很了解的情况下,不推荐,能用 vue+cordova 解决的就不要考虑其他了
    encro
        59
    encro  
       2018-05-25 22:58:43 +08:00
    网上看到 rn 坑多,是因为用的人多,没有看到 cordova,weex 等的坑是因为用得人少。
    作为一个在一年前同事用过 weex 和 rn 的人来说,
    rn 插件已经形成一定生态,
    而 weex 还是空白,
    现在我就不清楚了,
    因为那个项目已经死了。
    死之前还用小程序重构了一次。
    你为什么不用小程序?

    总结是:rn 的坑,rn 的插件的坑都有许多,但是 weex 和其他基本还没有插件生态,所以没有坑?
    gaodeng
        60
    gaodeng  
       2018-05-25 23:04:36 +08:00
    RN 坑是不少,不过好在基本可以绕过去。刚刚用 RN 完成了一个 App,现在在测试。帖子在这儿 https://www.v2ex.com/t/457738 感兴趣可以试试看效果。
    murmur
        61
    murmur  
       2018-05-25 23:05:01 +08:00
    @encro cordova 的坑是少,就算坑也是坑在性能问题上,一个 uiwebview 一个 wkwebview 都是大家逃不过的东西,你会遇到其他 wap 开发也会遇到,也就是厨子埋下的坑还没等上 rn 呢,直接做移动端兼容性的人就会发现
    所以你碰到的问题绝大多数也是垃圾 safari 留下的问题
    前提是不要放太多的第三方 native 接口
    如果你放了好几十个 native 接口 可能 2 个都不适合 你应该自己开发一个壳子然后往上适配 webview
    bigggge
        62
    bigggge  
       2018-05-25 23:05:16 +08:00
    你们光说 rn 有坑,那么到底有哪些坑?
    NonClockworkChen
        63
    NonClockworkChen  
       2018-05-25 23:06:31 +08:00
    对我来说,RN,是在用命写。。。
    murmur
        64
    murmur  
       2018-05-25 23:10:48 +08:00
    @bigggge
    首先 rn 那一套就是 react 差不多的生态链,比起 vue 的三段式写法理解起来就有点高度,vue 的起点已经低到会 jquery 会 template 就可以上手了
    其次 rn 虽然看上去是 js+css 总归是一层适配到 native,你在用起 css 是有忌惮的,第一次上手总要习惯哪些可以用哪些不能用 哪些有限制 对于 js 库也是一样的
    还有以前玩的时候很喜欢的 navigator 说放弃就放弃了
    sharkrice
        65
    sharkrice  
       2018-05-25 23:14:39 +08:00
    React native 团队作战很舒服,独自开发就要面临各种挑战
    gaodeng
        66
    gaodeng  
       2018-05-25 23:21:04 +08:00
    @bigggge 看看 RN 在 github 上的 issue 的数量,以及他们是如何处理 issue 的就清楚了。被 RN 虐了一段时间后 现在基本上开发 RN 项目过程中一出现灵异事件,就马上反应是到 RN issue 里面搜索一下。
    alian
        67
    alian  
       2018-05-25 23:25:37 +08:00
    其实我觉得坑是避免不了的,有这个机会拿来锻炼不错。不然坑一直在那。
    murmur
        68
    murmur  
       2018-05-25 23:26:43 +08:00
    @alian 这个其实没必要,如果业务不是特别和腾讯打架我其实还推荐去做微信小程序,毕竟微信的用户群太恐怖了
    tyrealgray
        69
    tyrealgray  
       2018-05-25 23:30:47 +08:00 via Android
    非原生方案写 app,除了 rn,没有其他选择。rn 遇到坑可以填,其他框架你遇到坑你填都没法填。
    murmur
        70
    murmur  
       2018-05-25 23:32:45 +08:00
    @tyrealgray 除了,没有,你这吹的有点过了,其实有的业务真的不配当 app,也就一个微信公众号就搞定的事。。
    tyrealgray
        71
    tyrealgray  
       2018-05-25 23:54:58 +08:00 via Android
    @murmur 别给我说,给楼主说让他不写 app 呗。

    吹啥了,现在除了 rn 坑少点,还有其他哪个框架能够经得住维护摧残的?
    james2013
        72
    james2013  
       2018-05-25 23:56:04 +08:00
    简单的 app 可以用 RN,复杂的界面和效果就不建议 RN,因为有的坑太难填
    callmexiaoliu
        73
    callmexiaoliu  
       2018-05-26 00:02:46 +08:00
    rn,不是很吃性能的应用,基本上 RN 都够用了
    Manweill
        74
    Manweill  
       2018-05-26 00:18:28 +08:00
    1.先说下你可能涉及的业务
    2.你可能需要了解或者掌握的技能
    数据流 redux、mobx (推荐)
    路由 react-navigation
    es6、es7...
    flex 布局
    UI antd-mobile、native-base
    本地数据存储 AsyncStorage、realm
    然后大多数的情况下,跟原生交互的库,在 github 上都有第三方的实现,如果没有,也可以自己基于 sdk 去封装,毕竟只是调用 sdk,自己模仿 SDK 的官方例子写还是勉强写。
    非常同意 #69 楼说的,RN 遇到坑了还可以填,社区也够强大,其他的遇到坑,你想填还填不了。
    v2dxt
        75
    v2dxt  
       2018-05-26 10:30:01 +08:00
    手动 mark
    Anshi
        76
    Anshi  
       2018-05-26 11:22:13 +08:00
    展示变多的可以 rn 交互很多就不要 rn 了。。纯建议哈。。
    其实最好用 webview 套一层
    纯学习可以来挖挖 rn 哈
    byztl
        77
    byztl  
       2018-05-26 13:23:23 +08:00 via iPhone
    写原声的,公司让用 mui ,性能真的辣鸡
    Panway
        78
    Panway  
       2018-05-26 14:10:27 +08:00
    对于你这种有 VUE 基础的,weex 上手真的很快,复杂的 UI 组件和 Module 啥的还是得原生程序员来简单支持下,我们公司的 iOS 安卓 App 界面,大部分都是一套 weex
    kouryu
        79
    kouryu  
       2018-05-26 15:00:09 +08:00
    @sobigfish dart 解决不了的部分,用原生语言写就行。
    vamxmen
        80
    vamxmen  
       2018-05-26 15:41:44 +08:00
    mui 啊~为什么木人推荐
    melonrice
        81
    melonrice  
       2018-05-26 17:49:17 +08:00
    居然给单人撸的商用级的 app 推荐 Flutter...作为最早吃瓜的群众之一,你这是推楼主入火坑啊
    shouhuori
        82
    shouhuori  
       2019-01-25 13:41:06 +08:00
    现在楼主怎么样了。还在用 react native 么。我觉得 react native + expo 开发体验还蛮好啊
    yantianqi
        83
    yantianqi  
    OP
       2019-01-31 16:45:47 +08:00
    @shouhuori 没有用 rn,没有机会用到。
    misch
        84
    misch  
       2019-02-25 15:25:49 +08:00
    不推荐 Nativescript,生态还不够健全,很多功能轮子都没有,都需要自己来写。
    djdaishu
        85
    djdaishu  
       2019-11-19 19:12:55 +08:00
    Nativescript 目前已很成熟 推荐入 Nativescript-vue 真的很不错 尤其性能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1043 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:41 · PVG 02:41 · LAX 10:41 · JFK 13:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.