转载自:http://www.jianshu.com/p/ee1cdb33db8d
主要对比React Native和5+SDK(就是dcloud的SDK)两个:

  1. 开发语言:三个都是用其他语言来统一开发IOS、android应用的框架技术,其中,React Native是使用纯JS,5+SDK是使用JS和html,LuaView则是使用lua语言,三者都是使用css或者类css布局,这点都很像,
    三者都可以使用原生(IOS、android)语言做一部分功能,比如有特殊性能要求的地方,就使用原生代码写,然后前端脚本语言调用;
  2. 开发效率:RN和5+SDK是主要采用JS语言做开发,效率上不是问题,LuaView采用的是lua脚本语言,这个大家都不熟悉,所以建议优先前两种;
  3. 动态发布特性:三者都支持动态发布,而且最方便的是RN(简要说下RN如何工作的,RN采用的是React技术<这个技术已经好多年了,是比较成熟的,只是RN才出现一年半>,这个技术是依托于node.js,并且发布后台采用node.js,文件修改替换即发布,不需要做另外的版本控制<版本控制采用SVN或者git的方式>;发布时,在后台整个项目是作为node.js的一个node节点来发布的;主项目中基本上是一个空项目,引入其他的native模块,这样管理很方便)
  4. 扩展性:都是动态发布,只有基础native组件需要更新时才需要appstore审核发布;
  5. 可读性:RN是采用纯JS开发,不需要html,代码上的行数一般要比5+SDK少很多,而且RN的开发过程中,规范做的也不错(个人感觉html+js+css会导致代码的行数上增大很多,阅读起来也就没那么方便)
  6. 性能:RN是采用JS桥接加Native桥接两个方式合并起来,然后加上增加对比差异化算法增量渲染,而且渲染都是native渲染,性能虽然比纯原生差一点,但是还是远远比H5的性能要快很多;
     5+SDK,开发时是html+js+css来开发,其实真正执行渲染时仍然是webview,我用工具查看过最终的页面结构,是一个webview,性能慢那是没的说的了
  7. 相关开发工具:5+SDK提供一个工具,也不错,不过我们一般都是用其他的文本编辑器就可以了;RN也提供了一个开发工具,atom编辑器的插件nuclide,还不熟练,不过应该不错(也有很多人使用sublime)。
  8. 开发初阶段,上手速度:RN比较大型,虽然采用的是纯JS开发,但是采用的React的开发方式,有很多的API需要熟悉和使用,相比于5+SDK上手速度是麻烦了点;而且RN的开发环境的搭建和使用需要很多的命令行工具,这也给RN的上手增加了一定的困难,不过用熟练了,就会发现RN这种方式的好,那真是好不好谁用谁知道(貌似5+SDK也是需要熟悉很多API,这点好像差别不是特别大);
  9. 社区力量:RN在React之后诞生了仅仅一年半,但是github的星数已经达到3、4万了,这个火热程度要远远比其他的框架热门了太多了,社区的力量大,就意味着坑少,或者说即使有坑修复的也快,有问题能找到解决方案的速度也越快,框架完善的速度也越快
  10. 开源:这也是很重要的因素,RN和LuaView是开源的,开源就意味着我们开发人员可以掌控的力度就越大,这年头,框架不开源,早晚得死;
  11. 文档:RN的文档还是很全的,还有很多外文翻译,官方也有相关的视频,5+sdk和LuaView文档就很一般般,热别是5+SDK,不开源,文档就不更新;
  12. RN的另外一个好处:RN同属于React,语法特点都一致的,React的口号就是learn once, write everywhere,而且React就是为web开发而产生,熟练了这个,可以把公司相关模块,比如说web端都可以统一了;当然5+SDK也可以做到这点,LuaView做不到这点,它只适用于IOS、Android的适配。

最后分享一个找到的一个别人开源出来的RN开发的APP:
https://github.com/soliury/noder-react-native

对比React Native、dcloud、LuaView三个框架技术(内部)的更多相关文章

  1. React Native之携程Moles框架

    因为支持用javascript开发原生应用,React Native一推出就受到不少公司热捧,各家都跃跃欲试.但有一个痛点是,在移动端,我们是否有必要开发多套程序:iOS.Android和H5?本次将 ...

  2. 基于React Native的跨三端应用架构实践

    作者|陈子涵 编辑|覃云 “一次编写, 到处运行”(Write once, run anywhere ) 是很多前端团队孜孜以求的目标.实现这个目标,不但能以最快的速度,将应用推广到各个渠道,而且还能 ...

  3. React Native学习(三)—— 使用导航器Navigation跳转页面

    本文基于React Native 0.52 参考文档https://reactnavigation.org/docs/navigators/navigation-prop 一.基础 1.三种类型 Ta ...

  4. React Native组件(三)Text组件解析

    相关文章 React Native探索系列 React Native组件系列 前言 此前介绍了最基本的View组件,接下来就是最常用的Text组件,对于Text组件的一些常用属性,这篇文章会给出简单的 ...

  5. react native之封装离线缓存框架

    请求数据=>本地有无缓存+缓存数据是否过期 =>可用 =>不可用 将代码封装成一个DataStore.js文件, 这里面主要提供:从本地获取数据,从网络获取数据,创建本地时间戳,请求 ...

  6. 移动端跨平台方案对比:React Native、weex、Flutter

    跨平台一直是老生常谈的话题,cordova.ionic.react-native.weex.kotlin-native.flutter等跨平台框架百花齐放,颇有一股推倒原生开发者的势头. 为什么我们需 ...

  7. React Native实践之携程Moles框架

    编者:本文来自携程框架研发部高级经理魏晓军在第二期[携程技术微分享]上的分享,以下为整理后的文字实录.视频回放可点击这里.关注携程技术中心微信公号ctriptech,可获知更多微分享课程信息. 因为支 ...

  8. 跨平台框架与React Native基础

    跨平台框架 什么是跨平台框架? 这里的多个平台一般是指 iOS 和 Android . 为什么需要跨平台框架? 目前,移动开发技术主要分为原生开发和跨平台开发两种.其中,原生应用是指在某个特定的移动平 ...

  9. React Native初探

    前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...

随机推荐

  1. 一步一步学EF系列1【Fluent API的方式来处理实体与数据表之间的映射关系】

    EF里面的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面,还有一个就是F ...

  2. Excel教程(3) - 函数输入方法

    对 Excel 公式而言,函数是其中的主要组成部分,因此公 式输入可以归结为函数输入的问题. "插入函数"对话框 "插入函数"对话框是 Excel 输入公式的重 ...

  3. MTK平台Android项目APK预置方案

    项目开发中,通常需要向系统中预置一些APK,这里简单介绍一下MTK平台预置APK的方法. 需要预置的apk可以放置在目录:vendor/mediate/${Project}/artifacts/out ...

  4. 关于css的hack问题

    <!--[if <keywords>? IE <version>?]> HTML代码块 <![endif]--> 取值: <keywords> ...

  5. div盒子水平垂直居中的方法

    这个问题比较老,方法比较多,各有优劣,着情使用. 一.盒子没有固定的宽和高 方案1.Transforms 变形 这是最简单的方法,不仅能实现绝对居中同样的效果,也支持联合可变高度方式使用.内容块定义t ...

  6. 二十一、oracle pl/sql分类一 存储过程

    存储过程用于执行特定的操作,当建立存储过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分:通过使用输出参数,可以将执行部分的数据传递到 ...

  7. Android makefile 组织结构

    下面是main.mk文件包含关系,本文档主要说明的就是这些文件里到底做了什么.(这个文件被根目录下的makefile文件包含) 一.     main.mk BUILD_SYSTEM=build/co ...

  8. IOS把图片缓存到本地的几种方法

    把图片缓存到本地,在很多场景都会用到,如果是只储存文字信息,那建一个plist文件,或者数据库就能很方便的解决问题,但是如果存图片到沙盒就没那么方便了.这里介绍两种保存图片到沙盒的方法. 一.把图片转 ...

  9. 其他应用和技巧-用Json格式来保存数据

    -------------------- <script type="text/javascript">            //定义json变量           ...

  10. JavaScript高级程序设计:第十三章

    第十三章 一.理解事件流 事件流描述的是从页面中接收事件的顺序. 1.事件冒泡 IE的事件流叫做事件冒泡,即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点.以下面的HTML页面为例: ...