React-Native 开发特点

1.1.1 一次学习,随处编写
  • 使用React-Native可以为iOS/Android这两个操作系统开发应用程序,不同平台上的代码根据平台会有一些微小的区别,但是开发思路是相同的。只需要根据平台进行一些代码调整。React Native提出了“Learn Once,write anywhere”。
1.1.2 混合开发
  • 混合开发是React Native的另一个重要特性。React Native允许开发者在React Native擅长的领域使用React Native开发,而在React Native不方便实现的领域(这些领域很小,并且与手机操作系统有密切的关联,如通讯录处理、通话记录处理、用户日历处理等)或者已经有原生代码实现好的领域直接使用原生代码。React Native代码开发的模块与原生代码开发的模块可以双向通信、无缝衔接。
      1. 通用的UI界面与业务逻辑由React Native开发,但与手机平台紧密关联的处理由原生代码来执行。
      1. 将原来使用原生代码实现的UI小部件包装成React Native的自定义组件。
      1. 应用界面在React Native开发的界面与原生代码开发的界面间切换。
1.1.3 高效的移动应用开发
  • 使用RN开发移动应用,绝大部分UI界面与业务逻辑都是一套代码。并且使用React Native开发移动应用的UI界面比使用原生语言快捷高效,而业务逻辑部分开发效率与原生代码相仿。因此使用RN开发移动应用,比使用两个平台不同的开发语言个开发一个应用,能节省50%甚至更多的工作量。UI开发是React Native的强项,这体现在4个方面上。
      1. 独特的UI实现框架( 复杂UI界面开发难点的本质问题是:如何将来自于网络侧与用户侧的动态数据高效、实时、正确地呈现在复杂的用户界面上。Facebook的React框架是这个问题的一个优秀解决方案。)
      1. 组件化开发(React强调将应用划分成多个互不相关的组件,每个组件作为一个独立的视图。这使得开发者更容易进行软件迭代升级,因为不用在改动某一小部分时把整个系统都梳理一遍。最重要的是,React包装了复杂而易变的数据到对象的实现,改为提供一个声明式的结构,是的整个程序模型变得抽象而简单。这样开发出来的代码结构清晰、共用性高、可移植性高。)
      1. 跨平台移植代码迅速
      1. 自动匹配不同屏幕大小的手机(使用React Native开发,开发者无须为不同的屏幕分辨率准备不同的图片资源或者布局文件甚至可以不考虑屏幕大小的问题。通过灵活的布局方式,React Native可以做到在不同的手机屏幕上高效、清晰的UI呈现。)
1.1.4 高效的移动应用开发调试
  • 在原生开发过程中,开发者的每一次改动都需要经理重新编译和构建,然后把安装包上传到手机的过程,这使得开发者在做很多工作时变得非常缓慢,尤其是当一个大工程的编译特别慢时。使用React Native开发,修改了代码后立刻可以在手机上看到效果,没有重新编译启动程序所需要的时间。并且可以打开一个Chrome窗口,所有的代码都移到Chrome里面运行,断点调试、但不调试、调用栈追踪这些常用的调试方法都可以进行操作。
1.1.5 灵活高效的应用热更新
  • 使用React Native开发的移动应用可以灵活高效地进行版本热更新。用户不论是使用Android还是iPhone手机下载了应用之后,开发者都可以在用户基本无感知的情况下加入新界面、新功能与新的业务逻辑。每次热更新需要下载的数据量在200KB~1MB这个量级(视移动应用复杂程序而定)。与之相比,使用原生代码开发的应用在需要进行更新时,需要启动下载任务(Android系统)或者提醒用户去苹果应用市场下载新版本。需要下载的数据量是RN热更新下载数据量的10倍左右。
1.1.6 有效的降低移动应用安装包体积
  • 对于普通复杂度的移动应用,使用RN实现的安装包会比原生代码实现的安装包大。但当移动应用复杂度不断上升时,RN就会显示出它的优势。当原生代码实现的安装包大于15MB后,开发者会惊奇的发现,使用RN改写代码后,安装包小于原生代码实现的安装包。移动应用功能越复杂,RN安装包相比原生代码安装包就越小。
1.1.7 学习门槛低、开发难度低
    1. 开发语言简单: React Native使用ECMAScript 2015(虽然它穿上了件很华丽的“马甲”,但我们还是一眼就认出来它就是JavaScript)语言(也简称为ES6),以及自创的JSX语言(通俗些说,就是在JavaScript中加入一些标签化的XML)来进行开发。JavaScript是一门使用很广泛的语言。也是一门很特殊的语言,它很简单但也可以非常复杂。React Native从一开始就注意到了JavaScript的不足之处,要求在React Native开发中使用JavaScript的“严格模式”, 并且采用更先进的ECMAScript 2015,能够做到取其精华,去其糟粕。
    1. 语法接近自然语言:React Native开发中的函数名、变量名都采用类似于自然语言的命名法,便于记忆。这种代码,语句的含义上基本上可以直接推断与理解。因此学习简单,容易上手。
    1. 积木式UI开发:使用React Native开发UI时,是一种类似于搭积木的方式。不论是设计还是实现,通过React Native框架都能做到逻辑结构清晰、开发难度低、可读性高、后期修改维护方便。
1.1.8 开发软硬件要求低
  • 使用React Native开发对软硬件要求低,这意味着开发者不需要再掏钱购买电脑硬件与相关软件。React Native开发用软件都是免费下载、安装使用的正版软件,部分是开源软件。对硬件要求也不高。
1.1.9 使用React Native开发的代价
    1. 内存消耗略大 :使用React Native开发的程序运行的所需内存比原生代码开发的程序略多。开发者开发调试时,React Native项目通常运行在“开发者模式”下,这时最简单的Hello World程序会比原生代码的Hello World程序多用20MB内存,这是正常的。当使用发布模式编译项目后,React Native项目占用的内存会比开发模式小很多,最简单的Hello World程序会与原生代码的Hello World程序消耗的内存相差不大。
    1. 运行速度:使用React Native开发的代码的运行速度比原生代码略慢。速度慢的缺点可以通过两方面来弥补。一是普通的功能(如UI展示、HTTP请求等),React Native实现的速度比原省代码慢,但用户感觉不出来,因此不需要加快。二是核心的功能,通过原生代码来开发,也就是混合开发移动应用程序。需要特别指出的是,开发者开发调试时,React Native项目通常运行在“开发模式下”,因为有很多特殊的任务需要执行(例如:验证属性类型,产生各种调试信息与警告信息,显示这些信息),代码的运行速度要比“发布模式”下的代码运行速度慢。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容