美文网首页
关于react native和weex之我见

关于react native和weex之我见

作者: 做人要简单 | 来源:发表于2017-07-13 16:36 被阅读116次

    关于react native和weex之我见

    写在前面

    我是一个主android开发,原生的ios开发也算是初窥门径,主要是有一些东西如果能一次性开发,多次使用就好了,跨平台性嘛
    本文没有代码,只是一些简单的看法

    跨平台的探索

    这里就有几个选择了,有纯粹的网页嵌入式开发,虽然是一个解决方案,但是毕竟不原生,而且网页渲染很不靠谱的感觉,否定掉了
    然后想起了react nativeweex,都号称是使用web语言开发,然后渲染成原生控件,而且还支持热更新!
    好高端大气的样子啊!去尝试下吧

    react native

    首先是react native,简称RN
    facebook的开源项目,语法和文档都还算可以接受

    开发环境配置

    我是jetbrain的忠实粉丝嘛,webstorm走起来,破解的方案自己baidu吧,这里就不宣传了

    导航条的问题

    我翻遍了所有的文档,没找到一个考虑的导航控制器,导航条虽然有一个react-navigation
    但是我使用了一下这个,如果是自己写一个自己的项目还好,但是我们毕竟不是设计师,国内的设计们从来都是按照自己的方案设计导航条的啊!真没几个人是用系统自带的方案,这里用react的navigation很难自定义,我这里没找到可以修改标题颜色的方案
    而且还需要吐槽一点,我认为网页端最强的一点就是百分比适配方案是css自带的,非常强大,而这里居然没有了,完全是px,这样面对不同的平台真的能好好的适配吗

    运行

    这里就要说webstorm对于react native的支持了,帮我们全部配置好了,可以用鼠标选择ios/android直接运行就行了,真是diao啊

    日志问题/debug问题

    和源生相比,android studio/xcode 都是可以直接在ide里直接可以看到日志的,调试相对很方便,这里就不是这样了,真的很麻烦,需要在模拟器里开debug模式,然后chrome打开网页,开发者模式,看控制台才能看见
    这个时候我才知道,我们原生开发的开发环境真的比网页端的兄弟们好太多了

    动态部署

    可以直接在模拟器点cmd+R就可以了 好简单啊!
    直接原地重新运行,我靠,什么时候我们源生也能这样就好了

    页面跳转问题

    在android中有intent开activity的方案,ios中有modal跳转开新页面
    RN这里就不行了,因为本质上android是运行在同一个Activity中的,ios的话应该是一个UIViewController中吧,然后利用内置的引擎将js渲染成源生代码进行展示,这里我想如果我需要跳转的话,可以自己内嵌代码,利用源生的方案跳转,然后回调到RN中来,理论上可行,后续我自己开发下试试看吧

    小总结

    RN其实完全可以承载简单的开发任务,比如是交互性质,或者展示页面时,完全可以使用RN来开发,但是学习成本不算太低
    另外就是当你有很繁重的任务,尤其是调用内置的系统级API时,如蓝牙的话如果能找到轮子还行,如果找不到那就很尴尬了

    weex

    阿里巴巴的项目嘛,在各种blog中也能见到vue的大名,这里想着可以尝试下

    优势/劣势

    对于中国人来说,这个原作者是中国人,相对来说中文的说明和解答就会很多,但是相对的,开源项目还是很需要英文社区的支持的,毕竟外国人对于开源社区的贡献从目前来说还是高于中国的

    开发环境

    这个开发环境相对RN来说没有那么好,因为ios/andorid的项目好像需要自己来建,这样就很不友好了,对于有原生开发经验的人来说还算友好,但是如果没有呢? 新入行的朋友想要快速的运行起项目来回很困难,这样的话对于新人来说门槛偏高,一个vue的开发人员转到weex来的话还需要学习android/ios的开发配置知识,不利于快速入行,我记得当前androidstudio只需要建立好项目,然后run就跑起来了

    文档

    这个相对完善很多,毕竟中文的嘛,但是我学到一半学习不下去的很大原因是,我试验自带的控件indicator和对应的demo代码,发现选中颜色和背景颜色不生效,这我就很揪心了,如果api更新后又不反映到文档上,让人会很困惑,自己调试了找了几个小时问题,发现居然是框架的问题,这个时候那种感觉就像吃了shi一样难受

    语法

    这个我想说,个人感觉比RN友好了很多,而且看起来让我想起了css+html+js的那种感觉,真的很友好

    最后小小总结下

    RN和weex都是很优秀的项目,但是目前个人感觉还是不太适合开发大型项目,里面的坑现在还不好说,而且最大的问题是没有完备的开发工具,虽然说NB的程序员都是用vim开发的 但是对于我等平庸之人来说,ide是开发必备的,因为静态的语法检查可以节省大家的时间,而且再怎么样所有的一切都是依赖在andorid/ios本身的平台上的

    个人认为:如果目前有两端需求,又不要求界面风格统一的应用,且是新应用,很适合使用RN/weex开发,但是本身公司就有ios/android开发的情况下,不太适合使用这个来开发,原生开发很成熟,非常成熟,原则上不会出现大问题,而且解决问题的方案会很多,混合app的开发,第一个版本的压力会非常大!!

    而RN/weex还处于快速迭代的过程中,目前应该还不适合接入,如果再过一年,我觉得可以考虑使用RN开发应用

    我想这次app store大规模的下架热更新的事件也应该会给大家一个警钟吧

    个人观点,有不同意的不要喷
    你好!react native  
    你好!weex
    希望明年再看会有不同的看法
    希望我可以早日可以一套代码多端使用!
    

    2018-07-20 更新 以上是2017年末的观点
    我在今年4月左右投入了flutter的开发大军中

    相关文章

      网友评论

          本文标题:关于react native和weex之我见

          本文链接:https://www.haomeiwen.com/subject/rfnwhxtx.html