React Native:该框架的5个主要学习内容是什么?

React Native是使用JavaScript库构建跨平台移动应用的框架, 反应它于2015年由Facebook公开发布,此后便广受欢迎。
我已经担任高级开发人员多年,并且从2015年末开始与React Native一起工作。那时,我已经使用该技术构建了多个应用程序,并确定了我将在下面阐述的许多优点和缺点。这样,您就可以决定该框架是否适合您和您的组织。 
JavaScript输入,本机应用输出
好吧,差不多...
React Native使用React库使用JavaScript构建移动用户界面。在构建移动应用程序时,还可以使用JavaScript构建业务逻辑,而无需编写任何ObjectiveC,Swift或Java。 React Native的主要功能–与其他框架的不同之处在于,它可以使用Web技术构建应用程序,这是您最终获得了真正的本机体验。诸如Cordova和PhoneGap之类的框架产生的内容实质上就是移动应用程序中包含的网页。
听起来很棒吗?对于了解JavaScript和React的开发人员而言,您无需学习新的编程语言就可以构建真正的移动应用程序!但是,有一些限制。
从历史上看,React Native应用的初始化速度很慢。当React Native应用启动时,它将加载您的JavaScript并将其转换为本地用户界面。 React Native社区最近做了很多工作来加快速度,并且启动时间也在缩短,但是由于框架的性质,情况总是如此。
然后,您可能会需要React Native不支持的本机功能。好消息是您可以构建自己的与应用程序的JavaScript端进行交互的本机模块。坏消息是您需要编写一些ObjectiveC和Java。幸运的是,React Native具有强大的开源社区,因此您可能会发现所需的本机功能已经为其构建了模块。
一个代码库,两个以上平台
正式而言,React Native支持iOS和Android设备。但是,存在第三方集成为其他平台提供支持。例如,Microsoft已发布了一个框架,该框架为Windows 10设备提供支持。
在绝大多数情况下,我发现我从事过的React Native应用程序共享了很高比例的代码,当然可以共享所有业务逻辑。但是,您可能会发现Android和iOS用户对UI的期望有所不同。例如,某些表格输入(例如日期控件)在iOS和Android之间有所不同。幸运的是,React Native具有内置的平台选择实用程序,可让您更改每个平台的单个组件的样式,甚至可以在iOS和Android之间使用完全不同版本的组件。
没有DOM
熟悉HTML的开发人员可能会了解`div`和`span`标签。如果您已经为网络开发了一个React应用程序,那么您很有可能会使用这些标签以及更多标签来构建React组件。由于React Native是一个框架,并且无法呈现到网络浏览器,因此它提供了一组基本组件,可用来构建您自己的更高级的组件。出来是`div`,进来是`View`。想要一个“按钮”吗?您需要使用“ TouchableOpacity”或“ TouchableHighlight”自己构建它。
它并不仅限于此,如果您之前构建过具有任何交互功能的网络应用,那么您可能对`form`s很熟悉。 React Native没有`form`的概念,这让我很沮丧!您可以创建按钮和输入,但不能创建表单。幸运的是,通过使用React,您已经内置了对应用程序状态和上下文的支持。因此,您可以构建自己的表单组件,也可以使用第三方程序包。我更喜欢一个名为Formik的程序包,因为它对移动设备和Web使用相同的API,从而促进了我的应用之间的一致性。
在Web和移动应用程序之间共享代码
由于React Native使用JavaScript和React,因此可以共享代码–甚至整个应用–在您的网络和移动客户端之间。例如,如果适合您的用例,则可以在移动设备和Web之间共享数据存储和API客户端等业务逻辑。还有一个名为React Native Web的框架,可将React Native组件呈现到Web浏览器。
更快的发展
React Native支持开箱即用的热重装。当您在编辑器中点击``保存''时,此功能仅重新加载应用程序的更改部分;也就是说,您无需重新启动应用程序,重新登录,导航至您正在使用的屏幕,并检查刚刚更新的标签是否确实可以更改颜色。
您还只需要在发生某些变化(例如对React Native的更新或第三方本机软件包的安装)发生变化时重新编译应用程序的本机部分。对于日常开发,您可以启动JavaScript捆绑器,并在模拟器或设备上打开应用程序,一切顺利。与Android和iOS编译器相比,JavaScript捆绑器的运行速度非常快,从而使体验类似于Web开发。
React Native适合您吗?
如果您是想从Web开发过渡到移动开发的Web开发人员,或者如果您已有使用React或JavaScript的现有Web应用程序,并且想要将功能移植到iOS和Windows上,则React Native是一个不错的选择。安卓使用React Native的工具,您会感到宾至如归,并享受构建真正的本地移动应用程序的速度。
但是,由于它的工作原理,它确实会遭受性能损失。如果您的应用严重依赖本机平台功能和API,或者具有大量动画和过渡效果,则可能会发现它不符合您的需求。在这种情况下,您可能会发现构建真正的本机应用程序对您而言会更好。
React Native的独特功能之一就是能够将其嵌入到您现有的移动应用程序中。因此,如果您认为框架的性能对应用程序的某些部分来说不够,而对其他应用程序来说还不错,那么始终可以选择使用框架来构建应用程序的各个部分。 
如果您想进一步了解React Native是否适合您的业务需求,请随时与我们的CTO联系 奥德兰·麦康奈尔 或我们之一 导演.

在脸书上分享
Facebook
分享到Twitter
Twitter
在linkedin上分享
LinkedIn

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

最近的帖子

文化,技能和能力//如何成为数据驱动型组织

在我们的白皮书“如何成为一个由数据驱动的组织中”,我们写了一个组织需要采取的五个步骤,它们是:成果:定义目标和指标以确保获得清晰和可衡量的结果分析:实施和共享分析,以改善数据驱动型决策创新:通过假设测试和学习来测试假设数据平台:获得新见解

Read More »

数据平台//如何成为更具数据驱动力的组织

这是我们关于“如何成为一个由数据驱动的更多组织”系列文章中的第四篇,我们将专注于数据平台。在这一点上,大多数人开始深入研究Data Lakes vs Data Warehouse的技术方面,但是我们想让我们回到一个更高的水平,并要求

Read More »

创新//如何成为更具数据驱动力的组织

在我们的白皮书“如何成为一个由数据驱动的组织中”,我们写了一个组织需要采取的五个步骤,它们是:成果:定义目标和指标以确保获得清晰和可衡量的结果分析:实施和共享分析以改善以数据为依据的决策制定创新:通过假设检验和学习来检验假设数据平台:获得新

Read More »

搜索博客

敏捷 Management Made Easy!

All About 敏捷

凯利·沃特斯(Kelly Waters)

“’Agile’ is one of the biggest buzzwords of the last decade. 敏捷 methods often come across as rather more complicated than they really are. This book is an attempt to unravel that complexity. To simplify the concepts. This book breaks the concepts into small bite-sized pieces that are easy to understand and easy to implement and delivers the message in a friendly and conversational style. Allaboutagile.com is one of the most popular blogs about agile on the web. ”

凯利·沃特斯

敏捷 101 is available to purchase. GAME ON!

敏捷 101

艾玛·霍普金森火花

“尽管有很多方法可以根据您拥有的团队和想要的学习成果来改变游戏,但是游戏的基本流程是所有人共有的。”
艾玛·霍普金森火花

我们为什么制作游戏?

怎么玩游戏?

伦敦

101种方式Limited
城市路145号
伦敦
EC1V 1AZ
英国

阿姆斯特丹

101种方式BV
Weesperstraat 61-105
1018 VN阿姆斯特丹
荷兰

联系我们

如果您想与101 Ways的团队之一联系,请填写以下表格或给我们发送电子邮件: contact-us@101ways.com.