//
//
//
//
//
//
//
//
//
//
软件Tags:
ReNative是一款精致的移动应用开发工具,基于当下广受欢迎的开源JavaScript库React.js,旨在为iOS和Android平台开发原生应用。通过声明式组件机制,用户可以轻松构建出丰富多彩的用户界面,心动的用户不妨尽快下载体验!
React Native的核心原理在于通过JavaScript中的React来抽象操作系统的原生UI组件,以取代传统的DOM元素进行渲染。
在后台,React Native在主线程之外的另一个后台线程中运行JavaScript引擎,两个线程之间通过一系列量化的异步消息协议进行通信(配备有专门的React插件)。
在用户界面方面,React Native提供了类似于Flexbox的跨平台布局系统,并支持子集。开发者可以使用JSX、普通JavaScript、CoffeeScript以及TypeScript进行开发。有评论指出,React的UI层模型在许多方面优于UIKit。
更为出色的是,基于Web技术的优势使得开发者能够在仿真程序中实时查看应用的运行状态,只需简单刷新,无需编译,极为便捷。
相较于标准Web开发或原生开发,React Native带来了三大显著优势:
1、手势识别:基于Web技术(L5/JavaScript)开发的移动应用常因响应迟缓而受到诟病,而React Native利用原生UI,成功避免了这一问题,实现了实时响应。
2、原生组件:由JavaScript构建的组件常常显得逊色,而React Native因其采用原生UI组件而彻底消除了此类顾虑。
3、样式与布局:iOS、Android及Web应用各自拥有不同的样式和布局机制,而React Native通过基于FlexBox的布局引擎在所有移动平台上实现了一致的跨平台样式和布局方案。
优点
复用了React的理念,为前端开发者顺利进军移动端铺平了道路。
充分利用JavaScript动态更新的特性,实现快速迭代。
与原生平台相比,开发速度更快,性能优于Hybrid框架。
缺点
无法做到“一次编写,处处运行”,也就是说开发者仍需为iOS和Android平台提供两套不同的代码。例如,在官方文档中可见,许多组件和API已明确区分Android与iOS版本。即便是共用组件,也会存在平台特有的函数。
无法完全遮蔽iOS或Android的细节,前端开发者需对原生平台有所了解,从而增加了学习成本。对于移动端开发者而言,完全掌握React Native的开发能力仍显不足。
由于Objective-C与JavaScript之间的切换存在固定的时间开销,因此性能难以与原生相媲美。例如,当前的官方版本无法实现UITableView(ListView)的视图重用,因为在滑动过程中,视图重用需在异步线程中执行,速度较慢。这也导致随着单元数量的增加,内存占用呈线性增长。