V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lissome
V2EX  ›  问与答

React Native 还是原生?求建议

  •  
  •   lissome · 2016-09-18 16:05:29 +08:00 · 12763 次点击
    这是一个创建于 2748 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想个人业余学来做些小应用玩玩。

    RN 方面,前端基础很少。原生 iOS 方面 OC 几年前看过,当时也只是 Hello World 的水准, Swift 没学过; Android 方面基础稍好一点,做过 2 个很小的应用,不过也很久没碰了。

    现在想做做小的 APP ,业余时间和精力不会很多, RN 和原生哪个更值得去学习呢?

    36 条回复    2016-09-19 23:13:45 +08:00
    tmac6740
        1
    tmac6740  
       2016-09-18 16:26:13 +08:00
    原生还是 i 简单
    maddot
        2
    maddot  
       2016-09-18 16:38:30 +08:00   ❤️ 6
    RN 很快的,简单的应用的话可以做到 android, iOS 基本完全通用代码,别听那些说原生的。你做出的应用很大可能没有人用,当然是用速度最快的方案,早开发早放弃。
    microchang
        3
    microchang  
       2016-09-18 16:43:40 +08:00 via Android
    @maddot 噗哈哈哈哈哈!
    murmur
        4
    murmur  
       2016-09-18 16:45:37 +08:00   ❤️ 1
    跟你说 真正靠谱的 拿掉了会对你生活产生影响的 app 什么微信 微博 qq 淘宝 都是 native 如果你硬说 taobao h5 那你也得看看他的 native 壳子有多少黑科技
    越牛 b 的应用 native 层越得过硬 就 rn 那个垃圾 browser 连反向通知都没有能用?!
    企业应用最好还是 ionic 这些 来的快 不求速度美观 还可以在线加载 bundle
    tinyhill
        5
    tinyhill  
       2016-09-18 16:46:37 +08:00   ❤️ 1
    @maddot 你试过用 rn 做 app 吗?很多问题 rn 是没法解决的,底层的很多组件还是基于原生组件,性能不行,所谓一次开发,说是说 android ios 都支持,实际上很多都是有差异性的。自己玩玩可以,正式产品目前还是不推荐。
    maddot
        6
    maddot  
       2016-09-18 16:58:08 +08:00
    @tinyhill 小应用做过,并且正式上线。。。注意楼主说的是自己业余时间开发小应用玩玩,没有时间,当然是推荐开发速度最快的,最容易上手的。
    newbieo0O
        7
    newbieo0O  
       2016-09-18 17:02:46 +08:00
    还是原生吧,第三方的限制太多。
    lissome
        8
    lissome  
    OP
       2016-09-18 17:13:07 +08:00
    感谢回复

    @maddot
    @tinyhill
    是的,时间精力有限,一开始就是想学一下 rn 的,不过 google 了一下,看到有人说初学坑比较多,而且学习曲线陡峭,所以现在比较纠结。怕到时候遇到坑爬不出来。。

    @newbieo0O
    原生比较正统,不过 rn 跨平台诱惑比较大。

    @murmur
    ionic 多一个备选
    Comdex
        9
    Comdex  
       2016-09-18 17:16:49 +08:00
    @lissome 楼主可以百度搜索 DeviceOne 这个试试,开发速度比 react native 要快,真正的原生跨平台,就是可能组件还不够丰富
    nicevar
        10
    nicevar  
       2016-09-18 17:40:28 +08:00
    功能比较单一的应用可以用 RN ,复杂的不推荐,毕竟 RN 坑太多,特别是 android ,后面才发现有些问题根本没法解决还得用原生重写一遍就尴尬了
    WordTalk
        11
    WordTalk  
       2016-09-18 17:48:40 +08:00 via iPhone   ❤️ 2
    @murmur
    你的论据很有意思,
    我顺势推理一下,只有微信、 qq 、微博之类极为成熟的 app 都采用一个刚出来的新技术,这个新技术才能用,坐等这么牛逼技术出现

    还有建议你多补补设计模式,多接触点工作以外的技术。不过最好先看看 rn 的数据流设计成这样的原因,因为你的评论一眼就会被人发现,你根本不会 react native 嘛
    murmur
        12
    murmur  
       2016-09-18 17:54:07 +08:00
    @WordTalk 我建议你思考一下 rn 的设计初衷,追求性能、底层、可控制的会考虑纯 native ,或者 native+魔改 webview ,追求高速开发的会考虑 ionic 这种全封装好了的东西,然而现在 rn 很多东西还在 beta ,而且 ios 和 android 差异化实现太多了,这反倒是后面可能会遇到的问题
    “我顺势推理一下,只有微信、 qq 、微博之类极为成熟的 app 都采用一个刚出来的新技术,这个新技术才能用”
    是的,没错,新技术如果不是技术很猛的团队,一定要有大公司淌水,只不过 angular2 和 react 本身就是国外比较“靠谱”的公司出的,所以大家疑虑没那么大,你再看看 vue 呢?
    另外,支付宝不支持 wp ,是不是某种程度也是干死 wp 的理由之一?你看多少公司都不敢给 wp 做东西,但是如果支付宝和微信都出了成熟的 wp 版呢?
    kikyous
        13
    kikyous  
       2016-09-18 17:56:47 +08:00
    rn 就是一个过渡
    murmur
        14
    murmur  
       2016-09-18 18:00:42 +08:00
    @WordTalk 另外不知道你是没看我帖子还是在望文生义, react native 的 wb 直到现在只能通过检测 url 和 stat 变更做到交互,我不知道这是有意为之还是就是没做完,现在支持 js 通知的是第三方实现的 browser ,这我可不敢用
    我的观点是,现在 h5 和 native 混编已经是流行趋势了, h5 在复杂排版、动态加载数据上有着 native 无法比拟的方便和开发效率,如果他的 browser 这么挫我只能否决他了
    这跟数据流向有关系么?分明是缺陷好吧,我又没说他的状态机整合设计和不可变数据,既然你提到了,我也认为这个设计不自然,正常的状态变更就应该跟操作一样,行云流水,我点了按钮弹出对话框,点了图标哪里变化,但是 react 非要把所有的状态抽出来,美其名曰为了性能和 debug 方便还要不可变,你喜欢咯?
    但是话说回来, rn 因为带了 navtab 这些东西,对于小型应用,而且分页比较明显的,不 redux 又如何?还不一样做
    sfree2005
        15
    sfree2005  
       2016-09-18 18:01:12 +08:00 via iPhone
    逻辑简单的可以用 ionic 但要学习 angular

    商城类的 APP ionic 都可以做到,逻辑复杂度不超过这个应该都行

    ionic 也可以作为前期的 demo 如果有更多人感兴趣了自然可以吸引人才和你一起做原生的
    learnshare
        16
    learnshare  
       2016-09-18 18:25:05 +08:00
    demo 用 Web 技术来做就好了
    langjun
        17
    langjun  
       2016-09-18 19:10:46 +08:00
    初学还是建议做 Native ,当你有一定的基础再去尝试 React Native ,这是可能会有更深一层的见解。
    bdbai
        18
    bdbai  
       2016-09-18 19:12:20 +08:00 via Android
    r#12 @murmur “不敢”和“不肯”还是有区别的。
    iFlicker
        19
    iFlicker  
       2016-09-18 21:42:05 +08:00
    据说。。是据说(我也没试过) React Native 的性能并没有 Native 好,
    包括 Native + WebView(H5),,比如??淘宝?反正 Android 是卡的不行
    ---------
    但是 为什么感觉 16 年为啥感觉 Android/iOS 岗位好少的样子。。
    是 React Native 的冲突还是培训机构的冲突。。还是真不行了嘛。。
    (好吧就是抱怨一下。。可能是自己太菜了找不到实习 T.T
    iwege
        20
    iwege  
       2016-09-18 21:52:52 +08:00
    不是有一个 NativeScript 么?那个如何?
    contractswif
        21
    contractswif  
       2016-09-19 00:57:02 +08:00 via iPhone
    @iwege React Native 的 Angular 版本,但是个人认为还在非常初期,没有很好的用它开发的例子
    contractswif
        22
    contractswif  
       2016-09-19 01:04:21 +08:00
    @iwege btw,
    NativeScript: Write once, run everywhere
    React Native: Learn once, write everywhere
    brucegong
        23
    brucegong  
       2016-09-19 04:18:51 +08:00 via iPhone
    @contractswif @contractswif NativeScript 应该没有号称"write once, run everywhere."
    "Learn once, write everywhere"指的应该也是 React 而不是 ReactReact Native 吧?
    Override
        24
    Override  
       2016-09-19 05:14:18 +08:00 via Android
    要不别吵了,这样吧。做系统工具就用原生,做 crud 就用 react native 。
    g0thic
        25
    g0thic  
       2016-09-19 09:14:08 +08:00
    用 RN 吧,没你想的那么多坑,简单应用还是 ok 的
    jiongxiaobu
        26
    jiongxiaobu  
       2016-09-19 10:06:04 +08:00
    @murmur 感觉你的喷点很奇怪啊。 一个应用用 RN 开发,还要用它提供的 browser 干嘛,这不是还停留在 hybrid app 的阶段嘛。 RN 的 browser 只是 RN 中的一个小组建。 建议多了解之后再喷。
    murmur
        27
    murmur  
       2016-09-19 10:13:43 +08:00
    @jiongxiaobu 你没看到国产的 app 一个比一个炫酷 这种复杂布局和炫酷效果不用 h5 嵌入一个一个用源生组件拼么
    contractswif
        28
    contractswif  
       2016-09-19 10:20:27 +08:00   ❤️ 1
    loveuqian
        29
    loveuqian  
       2016-09-19 10:22:19 +08:00
    来吧。和大家一起从 0 开始学习 Swift
    lissome
        30
    lissome  
    OP
       2016-09-19 10:33:01 +08:00
    @loveuqian 那还要学习 Java
    codehz
        31
    codehz  
       2016-09-19 10:33:51 +08:00 via Android
    @murmur 原生又不是非得用官方控件。。。可以自己写自定义控件啊,当然这样做多了就没必要用 rn 了,我估计你想表达的就是这个意思
    murmur
        32
    murmur  
       2016-09-19 11:00:01 +08:00
    @codehz 我的意思是,本着开发和复用的原则(负责任的网站都有 app 和 wap 同时提供), WebBrowser 组件必须足够强大才能撑得起这个交互,这个已经成了基本需求,就是 detail 页或者首屏,然而 rn 的 browser 在交互上弱的没法用
    codehz
        33
    codehz  
       2016-09-19 11:10:41 +08:00 via Android
    @murmur 用 rn 的,就不应该采用原来的架构了。大部分交互都应该用 rn 做而非 web browser 做。。要实现动态性,要用 rn 自己的热更新机制。
    jiongxiaobu
        34
    jiongxiaobu  
       2016-09-19 19:08:18 +08:00 via iPhone
    @murmur 你还是先了解下 rn 再来喷吧…………
    murmur
        35
    murmur  
       2016-09-19 19:55:14 +08:00
    @jiongxiaobu 我当然用过,还被坑过,如果你认为他提供的 jsx+被限制死的 css 能搞定你全部的样式,能搞到天猫京东那样的 detail 不用 webbrowser 我无话可说
    是你们说的要 curd 这不就一个 detail 页面而已么。。
    jiongxiaobu
        36
    jiongxiaobu  
       2016-09-19 23:13:45 +08:00
    @murmur 不是我认为,就是能实现比 html 体验好的。。。 否则要 RN 干嘛。。 你有试过 Animated API 吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2813 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 15:26 · PVG 23:26 · LAX 08:26 · JFK 11:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.